8

Uploadifyを使用して、ユーザーが Web アプリケーション経由で画像をアップロードできるようにしています。

私が抱えている問題は、進行状況バーが 100% に達すると、時々 (ランダムに見える) 'ハング' して何もしないことです。

uploadify に精通している開発者がこれを解決する方法を知っているかどうか疑問に思っていましたか? 私はどうしても助けが必要です。

これが私のフロントエンドコードです:

<javascript>
jQuery(document).ready(function() {
 jQuery("#uploadify").uploadify({
  'uploader'       : 'javascripts/uploadify.swf',
  'script'         : 'upload-file2.php',
  'cancelImg'      : 'css/images/cancel.png',
  'folder'         : 'uploads/personal_images/' + profileOwner,
  'queueID'        : 'fileQueue',
  'auto'           : true,
  'multi'          : true,
  'fileDesc'       : 'Image files',
     'fileExt'        : '*.jpg;*.jpeg;*.gif;*.png',
  'sizeLimit'      : '2097152',
  'onComplete': function(event, queueID, fileObj, response, data)
  {
   processPersonalImage(fileObj.name);
   arrImgNames.push(fileObj.name);
   showUploadedImages(true);
   document.getElementById("photos").style.backgroundImage = "url('css/images/minicam.png')";
  },
  'onAllComplete'  : function()
  {
     completionMessage(arrFailedNames);
     document.getElementById("displayImageButton").style.display = "inline";
     document.getElementById("photos").style.backgroundImage = "url('css/images/minicam.png')";
  },
  'onCancel'  : function()
  {
     arrImgNames.push(fileObj.name);
     arrFailedNames.push(fileObj.name);
     showUploadedImages(false);
  },
  'onError'  : function()
  {
     arrImgNames.push(fileObj.name);
     arrFailedNames.push(fileObj.name);
     showUploadedImages(false);
  }
 });
});
</javascript>

そしてサーバー側:

 if (!empty($_FILES)) 
 {
  //Get user ID from the file path for use later..
  $userID = getIdFromFilePath($_REQUEST['folder'], 3); 
  $row = mysql_fetch_assoc(getRecentAlbum($userID, "photo_album_personal"));
  $subFolderName = $row['pk'];
     //Prepare target path / file..
  $tempFile = $_FILES['Filedata']['tmp_name'];
  $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/'.$subFolderName.'/';
  $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
  //Move uploaded file from temp directory to new folder
  move_uploaded_file($tempFile,$targetFile);
  //Now add a record to DB to reflect this personal image..
  if(file_exists($targetFile))
  {
   //add photo record to DB
   $directFilePath = $_REQUEST['folder'] . '/'.$subFolderName.'/' . $_FILES['Filedata']['name'];
   addPersonalPhotoRecordToDb($directFilePath, $row['pk']);
  }
  echo "1";
  die(true);
 }

助けてくれてありがとう!!

4

7 に答える 7

2

これはphpのエラーのようです。Fiddler または同様の問題を使用して、php 応答などを表示します。PHP のエラー ログを確認してください。

于 2010-05-17T17:14:43.340 に答える
2

私はしばらく前に Uploadify で同様の問題を抱えていました (ASP.Net MVC を使用しています) - しかし、投稿された回答で Uploadify イベントの処理と動作に関する有用な情報を確実に見つけることができます! ここで入手可能

于 2010-05-20T08:53:09.480 に答える
1

私も同じ問題を抱えていました。uploadify スクリプトに追加echo "astlavista babi"するだけです。この echo ステートメントは最後の行にする必要があります。条件付きステートメントがある場合は、echo を条件付きステートメント内の最後の行として配置する必要があります。

于 2011-08-13T14:07:40.813 に答える
0

将来の参考のために:「scriptData」を使用してアップロードスクリプトにデータを送信するときにこの問題が発生し、空のドキュメントを送り返すのではなく、アップロードスクリプトで「OK」をエコーするだけで解決しました。

于 2011-01-31T15:40:46.667 に答える
0

Firebug では表示されないため、Mac を使用している場合はHTTP Scoopを使用してリクエストを表示します。HTTP Scoop の詳細については、このブログを参照してください。

于 2011-03-04T12:36:59.043 に答える
0

これらは、順番に実行する手順です。

1) サーバーから 200 応答が返されることを 100% 確認してください。そうじゃないならそこが問題

2) 最新かつ最高の uplaodify と jquery を使用する

3) JS エラーを確認します (firebug コンソールまたはブラウザー JS デバッガーが動作します)。

4) Flash Player をアップグレードします (それで問題が解決する場合は、より高いバージョンを要求できます)。

5) デバッグ ステートメントをアップロード ソース、特に完全なハンドラーに配置して、確実に呼び出されるようにします。

6) 進行状況が 100% に達しているのにハンドラーが呼び出されない場合、次のステップはアクション スクリプトに飛び込み、デバッガーまたはいくつかのトレース ステートメントを使用してエラーの場所を特定することではないでしょうか。これは、外部インターフェイス関数の呼び出しにバグがあることを意味している可能性があります

7) 修正した場合は、uploadify に提出してください

于 2010-06-22T18:58:44.567 に答える
0

php.iniパラメータのファイルを確認してpost_max_sizeください。upload_max_filesize>=パラメータでなければなりません。詳細については、http://php.net/post-max-sizeを参照してください。

于 2010-08-05T12:45:59.780 に答える