2012-02-28 9 views
0

PHP 5.3.3およびApache 2.2.16サーバーでアップロードするためにuploadifyを使用しています。 *私が使用しているすべての画像ファイルは小さいです< 1Mファイルのアップロードが壊れています

興味深いことに、いくつかの画像ファイルuploadifyはうまく動作し、画像ファイルを正しくアップロードします。しかし、他の人には8バイトしかアップロードされておらず、それは奇妙です。アップロードされたファイルがなぜ完全ではないのか分かりません。

Uploadify何らかの形でファイルが100%正常にアップロードされており、onError関数も使用しているとします。

問題を見つけ出す方法についての助けがあれば、本当に役に立ちます。

Uploadifyコード:

$('#change_thumb_file').uploadify({ 
'hideButton' : true, 
'wmode'  : 'transparent', 
'folder'  : VG.PROJECT_ROOT + '/static/apps/vialogues', 
    'uploader' : VG.SITE_STATIC_URL+'uploadify/scripts/uploadify.swf', 
    'script'  : VG.APPS_STATIC_URL+"vialogues/php/uploadify.php", 
    'buttonText' : 'Select an image', 
    'cancelImg' : VG.SITE_STATIC_URL+'uploadify/cancel.png', 
    'auto'  : true, 
    'sizeLimit' : 5242880, 
    'queueID'  : 'fileQueue', 
    'scriptAccess': 'always', 
    'method'  : 'POST', 
    'queueSizeLimit' : 1, 
    'width'  : '100', 
    'height'  : '30', 
    'fileDesc' : 'images', 
    'fileExt'  : '*.jpg;*.jpeg;*.png;*.bmp;*.gif', 
    'wmode'  : 'transparent', 
    'altContent' : '<div id="flash_notice">Flash player version 10.0.0 or above is required to upload a video. Please click the icon below to download Flash player.\ 
      <br /><a href="https://www.adobe.com/go/getflashplayer">\ 
      &nbsp;<img src="' + VG.SITE_STATIC_URL + 'uploadify/get_flash_player.gif" alt="Get Adobe Flash player" width="112" height="33">\ 
      </a>\ 
      </div>', 
    'onComplete' : function (event, queueID, fileObj, response, data){ 
     preview_uri = response.replace(VG.PROJECT_ROOT, ''); 
     $.ajax({ 
      url:VG.SITE_URL + 'vialogues/api/crop_thumbnail', 
      type:'PUT', 
      data: {'img': preview_uri}, 
      success: function(data){ 
       $('#thumb_preview').empty().append('<img src="'+preview_uri+'" />'); 
      }, 
      failure: function() {alert("There was an unexpected error. Please try again."); window.location.reload()}, 
     }); 
     $('#step_two').fadeIn(); 
    },    
    'onError' : function(event, queueID, fileObj, errorObj) { 
       var errMsg = "There was an error uploading ... \n"; 
       errMsg += "Error type: " + errorObj.type + "\n"; 
       errMsg += "Error Info: " + errorObj.info + "\n"; 
       alert(errMsg); 
      } 
}); 

ファイルアップロード(uploadify.php)を行うコード:

if (!empty($_FILES)) { 
$tempFile = $_FILES['Filedata']['tmp_name']; 
$targetPath = $_REQUEST['folder'] . '/'; 
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name']; 

$fileTypes = str_replace('*.','',$_REQUEST['fileext']); 
$fileTypes = str_replace(';','|',$fileTypes); 
$typesArray = split('\|',$fileTypes); 
$fileParts = pathinfo($_FILES['Filedata']['name']); 

if (in_array($fileParts['extension'],$typesArray)) { 

    $result = move_uploaded_file($tempFile,$targetFile); 
    if ($result) { 
     echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);   
    } 
    else { 
     echo 'Upload Failed'; 
    } 
} else { 
    echo 'Invalid file type.'; 
} 

}

+0

私たちがお手伝いできるように、あなたの質問にいくつかのコードを入力してください。よろしくお願いします。 –

+0

にはコードが含まれていますが、問題はコードではないと思います。ファイルのアップロードが途切れているような気がします。どこにあるのかわかりません。 – user504879

+1

あなたのApacheエラーログには何もありませんか?また、アップロードが行われている間は、 '/ tmp'の内容を確認してください(あなたのサーバがLinuxを実行していることを前提としています)。 – Crontab

答えて

0

だから問題は、アクセス権の問題の中に起こっていました。私がした回避策は、ルートディレクトリに別のフォルダを作成し、Apacheが動作するwwwデータユーザーに明示的なアクセス許可を与えることでした。何とかmove_uploaded_fileは許可のために何のエラーも投げていませんでした。

関連する問題