我有一个非常直接的上传页面,允许用户上传文件,当我在我的本地计算机上运行它时,它可以很好地工作,通过http://localhost/project/etc
访问它问题是当我尝试从localhost外部访问相同的东西时,即使尝试通过我的机器名(http://mycomp1/project/etc)来访问它,页面加载/等等一切似乎都有效,但没有正在转移,我有萤火虫打开,通常它会显示正在进行的任何ajax请求,但我什么也没得到。
有什么想法吗?
我的uploadify代码:
$('#uploadify').uploadify({
'scriptAccess': 'always',
'uploader': '../../scripts/uploadify.swf', //flash source for handling the uploads and size checking
'cancelImg': '../../content/images/cancel.png', //cool cancel button
'script': '../../' + $('#Controller').val() + '/FileSave/' + $('#OrderID').val(), //sends files to the controller with apropriate data
'folder': 'Uploads', //sets the upload directory, not sure if this matters as the files are sent to the controller
'multi': true, //allows multiple uploads
'auto': false, //uploads dont start automatically
'queueSizeLimit': 5, //5 files can be in the queue at a time
'queueID': 'fileQueue', //div to contain the queue of files
'displayData': 'speed', //shows the transfer speed
'fileExt': '*.pdf', //limits to pdfs
'fileDesc': 'PDF', //shows a description in the browse window of filetypes
'sizeLimit': '5242880', //5mb limit
'scriptData': { 'CategoryID': $('#fileCategory').val() }, //passes the selected value of the category drop down
onComplete: function(event, queueID, fileObj, response, data) {//once a transfer completes fires an ajax function to pull in the files for the order
if (response == "Upload Successful") {//if response is successfull, updates div displaying files with new files
GetFiles($('#Controller').val());
}
}
});
更新:它似乎与scriptAccess设置有关,但即使设置为always,如在uploadify网站上所述,它仍然没有触发任何后端脚本或我的onComplete函数
UPDATE2:在进一步检查时,在非本地主机设置中似乎我的脚本路径不正确,但现在脚本位于正确的位置,我的onComplete函数中的响应等于我登录的html输出页。任何想法?
UPDATE3:看起来我的脚本路径没问题,只是出于某些原因,当没有在localhost上时,我得到了我的登录页面的响应,而不是上传成功或上传失败,因为我应该从我的后端代码
答案 0 :(得分:3)
对于登录页面问题,听起来闪存不尊重您的会话。
假设您使用的是PHP,请确保在Flash对象的帖子中传递PHP sessionid。例如,使用SWF Upload,可以将其传递到post_params设置。然后,确保在会话开始之前执行此类操作:
if( isset( $_POST['session_id'] ) && !empty( $_POST['session_id'] ) )
session_id( $_POST['session_id'] )
session_start();
编辑:我刚刚注意到ASP标签。我在ASP中发现了关于flash会话的这篇文章。希望这会有所帮助。
http://swfupload.org/forum/generaldiscussion/98
编辑:还有一些uploadify + ASP特定信息。
http://www.uploadify.com/forum/viewtopic.php?f=7&t=1178
这看起来很有希望:::
答案 1 :(得分:1)
有同样的问题和解决方案非常简单 - 将crossdomain.xml
添加到您的Web服务器的可见根文件夹中.Updateify正在访问。
它应包含以下信息
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="yourdomain"/>
</cross-domain-policy>
此外,我建议您阅读this manual以更好地理解此文件的全部内容。
请尝试使用此方法查看这是否是问题的根源。