Javascript上传文件没有任何HTML代码,表单,输入等

时间:2013-12-10 13:37:10

标签: javascript django dhtmlx

我是webdevelopment的新手,特别是在javascript中。我的目标是在我正在进行的项目中使用DHTMLX库。

我将文件上传到django服务器时遇到问题。现在我正在使用DHTMLX javascript库,我的网站上有一个带有按钮的DHTMLXToolBar。我想通过单击此按钮上传文件。但是我的代码没有向我显示选择文件/文件的任何窗口(很多,最好)。没有关于此的任何HTML代码。

我尝试过使用隐藏的表单,甚至隐藏的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()

0 个答案:

没有答案