gpt4 book ai didi

javascript - 使用 JQuery 通过 AJAX 从 OneDrive 上传文件时出错

转载 作者:行者123 更新时间:2023-12-01 05:19:00 27 4
gpt4 key购买 nike

我在创建拖放文件上传界面时遇到了一些问题 - 它非常适合本地文件,但是当我尝试从资源管理器中的 OneDrive 拖动到“放置”区域时,控制台会报告 网络:ERR_FAILED

在某些情况下是否无法从非本地文件进行拖放操作?如果是这样的话,有什么样的限制?例如,Mac 上的 iCloud 似乎运行良好。

上传者似乎认为这是一个有效的文件,但似乎无法访问它或其他东西。

以防万一它有帮助,这里是相关的代码:

function handleFileUpload(files,obj) {
for (var i = 0; i < files.length; i++) {
var fd = new FormData();
fd.append('file', files[i]);
status.setFileNameSize(files[i].name,files[i].size);
sendFileToServer(fd,status);
}
}

function sendFileToServer(formData,status){
num_uploaded_files++;
checkUploadLimit();
var uploadURL = "uploader.php?request=upload_file"; //Upload URL
var jqXHR=$.ajax({
xhr: function() {
var xhrobj = $.ajaxSettings.xhr();
return xhrobj;
},
url: uploadURL,
type: "POST",
contentType:false,
processData: false,
cache: false,
data: formData,
success: function(data, textStatus, jqXHR){
status.setProcessing();
response = $.parseJSON(data);
if(response.success == 1) {
status.setType(response.file_type);
status.uploadComplete(response.id,response.file_type,response.new_filename);
type = response.file_type;
} else {
status.setFailure(response.failure_reason);
}
},
error: function(jqXHR, textStatus, errorThrown) {
status.setFailure(errorThrown);
}
});
status.setAbort(jqXHR);
}
$( document ).ajaxError(function( event, jqxhr, settings, thrownError ) {
console.log('AJAX error');
});

预先感谢您的任何帮助或建议!

最佳答案

看起来确实是 OneDrive 未在本地存储文件的问题。这是一个例子:

Online-only vs Available offline

在上面的示例中,顶部文件(可离线使用)上传良好,而下面的文件则不然。

据我所知,无法通过拖放上传仅限在线的文件(或者至少无法使用与上述方法类似的代码)。相反,您需要一个 input type="file" 才能执行此操作(然后 Windows 会自动在本地下载文件以准备上传)。

用户可以右键单击文件并选择“脱机可用”,这样可以解决这些文件的问题。

我在 Google 云端硬盘上测试了相同的文件,并且出现了相同的问题。如果 Google 无法做到这一点,那么我也不太可能做到这一点,但如果其他人找到了解决方案,请在下面发布您的答案,我将非常乐意接受。

关于javascript - 使用 JQuery 通过 AJAX 从 OneDrive 上传文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46670092/

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