需要Ajax的文件上传意见(Need advice on Ajax fileupload)

2019-10-29 03:26发布

我试图获取使用了Ajax文件上传的http://valums.com/ajax-upload/

该医生说:

var uploader = new qq.FileUploader({
    // pass the dom node (ex. $(selector)[0] for jQuery users)
    element: document.getElementById('file-uploader'),
    // path to server-side upload script
    action: '/server/upload'
    // WHAT IS action:?
});

元素属性意味着什么元素ID用作上传按钮。 作用是什么? 它必须是某种形式的处理程序对上传的文件?

我该如何处理上传的文件在哪里位于?

该医生说

// events         
// you can return false to abort submit
onSubmit: function(id, fileName){},
onProgress: function(id, fileName, loaded, total){},
onComplete: function(id, fileName, responseJSON){},
onCancel: function(id, fileName){},

我要上传完成时显示的文件列表的地方,说与ID =列表格

短片断将得到高度赞赏和奖励。

Answer 1:

我已经使用了文件上传了很多,我认为这是最好的文件上传那里。

该行动是从Ajax客户机脚本接收呼叫的方法(URL)。 你必须确定你的HTML一个DIV:

<div id="uploaderFile"></div>

我用了一个JavaScript函数来建立我周围的DIV上传:

function CreateImageUploader() {
    var uploader = new qq.FileUploader({
        element: $('#uploaderFile')[0],
        template: '<div class="qq-uploader">' +
                              '<div class="qq-upload-drop-area"><span>Drop files here to upload</span></div>' +
                              '<div class="qq-upload-button ui-button ui-widget ui-corner-all ui-button-text-only ui-state-default">Seleziona il Listino Excel</div>' +
                              '<ul class="qq-upload-list"></ul>' +
                              '</div>',
        hoverClass: 'ui-state-hover',
        focusClass: 'ui-state-focus',
        action: 'Home/UploadImage',
        allowedExtensions: ['jpg', 'gif'],
        params: { },
        onSubmit: function(file, ext) {

            },
        onComplete: function(id, fileName, responseJSON) {
            $("#PopupImageUploader").dialog('close');
            }
        }
    });
}

这里发生的是你要创建这个元素元素围绕上传: $('#uploaderFile')[0] 我使用的标准模板,但你可以改变外观。 当你这样做的一切是在客户端相当多的设置。 在服务器端(这取决于你所使用的),你必须拦截和读取该文件,并坚持它。
我使用ASP.NET MVC。 你可以找到我的行为在这里和这里你的服务器端代码将设法坚持你想要的文件,将返回相关信息的客户端脚本。
个人而言,我回到我与事件管理JSON数据onComplete于:(在本例等)关闭对话框; 显示一个消息等等等等等等

如果你想传递参数返回给客户端服务器端可以返回一个JSON对象。 我会做这样的事情:

return ("{success:true, newfilename: '" + newFileName + "'}");

我认为,在PHP可能是这样的:

echo {success:true, newfilename: '" + newFileName + "'}";

原谅我,如果存在这样的错误,但我从来没有写在我的整个人生的一个PHP线;-)

客户端现在可以检查JSON对象是这样的:

onComplete: function(id, fileName, responseJSON) {
   alert(responseJSON.newfilename);
}

正如你可以看到我传回行动的结果: success:truesuccess:false ,所以我可以显示警告用户:

onComplete: function(id, fileName, responseJSON) {
if (responseJSON.success)
{
    alert(responseJSON.newfilename);
}
else {
    alert("something wrong happened");
}
}


Answer 2:

我该如何处理上传的文件在哪里位于?

这取决于你的网络服务器和后端的语言。 在PHP看看在$_FILES数组。

作用是什么? 它必须是某种形式的处理程序对上传的文件?

用来上传文件的形式提交到网址。



Answer 3:

作用是什么? 它必须是某种形式的处理程序对上传的文件?

是,相同的HTML <form>元素的属性 。

我该如何处理上传的文件

随着优先写入你的服务器端语言服务器端脚本。

并在位于?

也许作为一个流STDIN。 你与上述服务器端语言使用窗体库有方法可以自动解压。



文章来源: Need advice on Ajax fileupload