我正在使用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);
}
感谢您的帮助!!
答案 0 :(得分:2)
答案 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的更多信息。