Uploadify随意挂100%

时间:2010-05-17 16:46:51

标签: php javascript jquery uploadify

我正在使用Uploadify让我的用户通过我的网络应用程序上传图片。

我遇到的问题是,当进度条达到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);
 }

感谢您的帮助!!

7 个答案:

答案 0 :(得分:2)

这似乎是一个PHP错误。 我会使用Fiddler或类似的问题来查看php响应或类似内容。 检查你的php错误日志,它们可能会有所启发。

答案 1 :(得分:2)

我上次使用Uploadify(虽然使用ASP.Net MVC)也遇到了类似的问题 - 但是你肯定会在发布的答案中找到一些关于Uploadify事件处理和行为的有用信息!它可用here

答案 2 :(得分:1)

我遇到了同样的问题。 只需将echo "astlavista babi"添加到uploadify脚本中,此echo语句应该是最后一行,如果您有条件语句,那么echo应该作为条件语句中的最后一行。

答案 3 :(得分:0)

以下是我要采取的步骤:

1)100%确定您从服务器获得200响应。如果没有,那就是问题

2)使用最新和最好的uplaodify和jquery

3)检查JS错误(firebug控制台或浏览器JS调试器将起作用)

4)升级您的Flash播放器(如果解决了这个问题,那么您可以要求更高版本)

5)在uploadify源中放置一个调试语句,特别是在完整​​的处理程序中,以确保它被调用

6)如果进度达到100%但处理程序永远不会被调用,我担心下一步可能是深入到actionscript并使用调试器或一些trace语句来确定错误的位置。这可能意味着调用外部接口函数存在错误

7)如果你做了修正,请提交回uploadify

答案 4 :(得分:0)

php.ini参数清除post_max_size个文件。它必须是&gt; = upload_max_filesize参数。有关详细信息,请参阅http://php.net/post-max-size

答案 5 :(得分:0)

供将来参考:使用“scriptData”将数据发送到上传脚本时遇到此问题,只需在上传脚本中回显“ok”而不是发送回空文档即可解决此问题。

答案 6 :(得分:0)

对于使用Mac的用户,使用HTTP Scoop查看请求,因为Firebug没有显示该请求。有关来自this blog的HTTP Scoop的更多信息。