Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/480.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript上传文件,无需任何HTML代码、表单、输入等_Javascript_Django_Dhtmlx - Fatal编程技术网

Javascript上传文件,无需任何HTML代码、表单、输入等

Javascript上传文件,无需任何HTML代码、表单、输入等,javascript,django,dhtmlx,Javascript,Django,Dhtmlx,我是网络开发新手,尤其是javascript。我的任务是在我正在进行的项目中使用DHTMLX库 我在将文件上载到django服务器时遇到问题。现在我正在使用DHTMLX javascript库,我的网站上有一个带有按钮的DHTMLX工具栏。我想通过点击这个按钮上传文件。但是我的代码并没有显示任何窗口来选择一个或多个文件(很多都是不切实际的) 我尝试过使用隐藏的表单,甚至使用表单的隐藏iFrame,纯javasctip,但仍然没有 矿山js代码 var iframe = document.crea

我是网络开发新手,尤其是javascript。我的任务是在我正在进行的项目中使用DHTMLX库

我在将文件上载到django服务器时遇到问题。现在我正在使用DHTMLX javascript库,我的网站上有一个带有按钮的DHTMLX工具栏。我想通过点击这个按钮上传文件。但是我的代码并没有显示任何窗口来选择一个或多个文件(很多都是不切实际的)

我尝试过使用隐藏的表单,甚至使用表单的隐藏iFrame,纯javasctip,但仍然没有

矿山js代码

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数据不会有问题,我会处理它。您需要在表单中添加