gpt4 book ai didi

javascript - Ajax/iFrame/FileSystemObject 上传

转载 作者:行者123 更新时间:2023-11-30 06:00:23 24 4
gpt4 key购买 nike

我已经为我的应用程序构建了一个 uploader ,但在某些事情上遇到困难。

每隔 3 秒,我的 AJAX 脚本就会调用我的 ASP 页面 checkProgress.asp,以检查上传过程中该文件夹中有多少文件,它还会检查其中是否有名为 complete.txt 的 txt 文件。

计数完成后,它会将响应发送回 AJAX 脚本,其中包含“文件 2 已上传...”之类的内容,3 秒后它将发送“文件 3 已上传...”,依此类推。如果找到 complete.txt 文件,它将返回“Complete”而不是计数。这工作得很好,一次,然后似乎没有正常执行。我收到了应有的“完成”消息,但没有收到文件计数进度响应。

我使用新的浏览器窗口手动运行 checkProgress 页面以查看为什么我的进度面板没有更新进度,并注意到浏览器加载图标只是在旋转,当上传完成时,弹出“完成”。所以 AJAX 调用没有到达收集文件数的页面,因为它很忙,这让我很困惑,因为该页面所做的只是计算一个文件夹中有多少文件。

有人可以建议我做错了什么吗?在添加该文件夹时,这只是不会发生吗?

这是我的 AJAX 脚本。这在上传开始时开始:

var upload1ProgressCheckInt = setInterval(function() {
var postData = "token="+token;
$.ajaxSetup ({ cache: false });

$.ajax({ type : 'GET', url : 'ajax/checkProgress.asp',
dataType : 'html', data : postData,
success : function(data) {
if (data == "Failed") {
$('#upload1ProgressStatus').html('Error: Upload cancelled!');
clearInterval(upload1ProgressCheckInt);
// do stuff
} else if (data == "Complete") {
$('#upload1ProgressStatus').html('Success: Files uploaded');
clearInterval(upload1ProgressCheckInt);
// do stuff
} else {
$('#upload1ProgressStatus').html(data);
}
}
}); // end ajax
}, 3000);

这是 checkProgress.asp 页面:

Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If (FSO.FileExists(Server.MapPath("../files/photos/"&token_&"/complete.txt"))) = True Then
Response.Write "Complete"
Else
Set folder = FSO.GetFolder(Server.MapPath("../files/photos/"&token_&"/"))
Set files = folder.Files
fileCounter = files.Count
Response.Write "File "&fileCounter&" uploaded..."
End If

最佳答案

...继续评论。

我是这样理解的。经典 ASP 为每个 session 分配一个工作线程,因为经典 ASP 对象是单线程的,因此在请求之间共享它们(存储在 session 对象中)的唯一方法是为每个 session 使用一个线程。当然,这正是您所看到的 - 所有其他请求都被阻止,直到上传完成。

解决这个问题的方法是中断 session 。不幸的是, session cookie 仅适用于 HTTP(出于安全原因),因此我认为没有办法将其从 AJAX 请求中删除。

您可以让您的 IIS 条目响应另一个主机名,并将您的 AJAX 请求转换为对第二个主机名的 JSONP 请求。我不确定是否有更优雅的方式来做到这一点。

==================

编辑:实际上我收回关于 cookie 的部分。您肯定可以通过将 headers:{Cookie:""} 传递给您的 ajax() 调用来杀死它们吗?值得一试....

关于javascript - Ajax/iFrame/FileSystemObject 上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8958740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com