Javascript上传文件,无需任何HTML代码、表单、输入等
我是网络开发新手,尤其是javascript。我的任务是在我正在进行的项目中使用DHTMLX库 我在将文件上载到django服务器时遇到问题。现在我正在使用DHTMLX javascript库,我的网站上有一个带有按钮的DHTMLX工具栏。我想通过点击这个按钮上传文件。但是我的代码并没有显示任何窗口来选择一个或多个文件(很多都是不切实际的) 我尝试过使用隐藏的表单,甚至使用表单的隐藏iFrame,纯javasctip,但仍然没有 矿山js代码Javascript上传文件,无需任何HTML代码、表单、输入等,javascript,django,dhtmlx,Javascript,Django,Dhtmlx,我是网络开发新手,尤其是javascript。我的任务是在我正在进行的项目中使用DHTMLX库 我在将文件上载到django服务器时遇到问题。现在我正在使用DHTMLX javascript库,我的网站上有一个带有按钮的DHTMLX工具栏。我想通过点击这个按钮上传文件。但是我的代码并没有显示任何窗口来选择一个或多个文件(很多都是不切实际的) 我尝试过使用隐藏的表单,甚至使用表单的隐藏iFrame,纯javasctip,但仍然没有 矿山js代码 var iframe = document.crea
var iframe = document.createElement("iframe");
filesToolbarObject.attachEvent("onClick", function(id) {
if (id == "new"){
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "");
form.setAttribute("id", "playlist_form");
form.setAttribute("enctype", "multipart/form-data");
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "filesToUpload[]");
hiddenField.setAttribute("id", "filesToUpload");
hiddenField.setAttribute("type", "file[]");
hiddenField.setAttribute("multiple", "");
hiddenField.setAttribute("onChange", "makeFileList();");
var crfcTokenField = document.createElement("input");
crfcTokenField.setAttribute("type", "hidden");
crfcTokenField.setAttribute("name", "csrfmiddlewaretoken");
crfcTokenField.setAttribute("value", '{{ csrf_token }}');
form.appendChild(hiddenField);
form.appendChild(crfcTokenField);
iframe.name = "myTarget";
// Next, attach the iFrame to the main document
window.addEventListener("load", function () {
iframe.style.display = "none";
document.body.appendChild(iframe);
});
iframe.addEventListener("load", function () {
$('.upload').show();
});
form.target = iframe.name;
form.style.display = "none";
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}
});
服务器端:
for fileToUpload in request.FILES.getlist('filesToUpload[]'):
fileType=get_file_type(fileToUpload.name.split('.')[-1])
if fileType:
newFile = Media()
newFile.type = fileType
newFile.ext = newFile.name.split('.')[-1]
newFile.size=fileToUpload.size
newFile.file=fileToUpload
newFile.name=fileToUpload.name
newFile.save()
应该上传文件的代码在哪里?好了,就这些,我只有这些了。正如Praviously所说的,我是一个noob:/但渴望学习;)好啊这就是问题所在,您只有一个可以发布的表单。你需要一个服务器端脚本来上传表单中的内容。我有一个服务器端代码很好,我只需要让它打开“浏览文件”窗口,这将生成一个文件列表。服务器端和post数据不会有问题,我会处理它。您需要在表单中添加
。