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

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

于 2011-08-13T14:07:40.813 回答
0

检查您的php.ini文件以获取post_max_size参数。它必须是 >=upload_max_filesize参数。有关更多详细信息,请参阅http://php.net/post-max-size

于 2010-08-05T12:45:59.780 回答
0

供将来参考:我在使用“scriptData”将数据发送到上传脚本时遇到了这个问题,并通过在上传脚本中简单地回显“ok”而不是发回一个空文档来解决这个问题。

于 2011-01-31T15:40:46.667 回答
0

这些是我将采取的步骤,按顺序:

1) 100% 确定您从服务器收到 200 响应。如果不是,那就是问题

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

3) 检查 JS 错误(firebug 控制台或浏览器 JS 调试器都可以)

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

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

6) 如果进度达到 100% 但处理程序从未被调用,恐怕下一步可能是深入到 actionscript 并使用调试器或一些跟踪语句来找出错误所在。这可能意味着调用外部接口函数时存在错误

7)如果您进行修复,请提交回uploadify

于 2010-06-22T18:58:44.567 回答
0

对于那些使用 Mac 的人来说,使用HTTP Scoop来查看请求,因为 Firebug 没有显示它。来自此博客的更多关于 HTTP Scoop 的信息。

于 2011-03-04T12:36:59.043 回答