mvc框架中的Valums fileuploader无法在ie8中运行

时间:2011-02-16 00:40:39

标签: php jquery ajax file-upload

即时通讯使用我自己的php mvc框架并且已经合并了Valums fileuploader。 它适用于FF,但在IE8(唯一的ie浏览器测试)中,我在提交表单时收到404错误。

从IE中的控制台我得到了这个:

  

日志:[上传者] iframe已加载
  日志:[上传者]将iframe的innerHTML转换为JSON
  日志:[上传者] innerHTML = 404

这是我用来调用Valums上传者的Javascript:

$(document).ready(function(){

// Setup the ajax indicator

var uploader = new qq.FileUploader({

        element: document.getElementById('file-uploader'),
        // url of the server-side upload script, should be on the same domain
        action: '/mofo/annonce/upload',
        //Only one image
        multiple: false,
        // additional data to send, name-value pairs
        params: {},

        // validation    
        // ex. ['jpg', 'jpeg', 'png', 'gif'] or []
        allowedExtensions: ['jpg', 'jpeg', 'png', 'gif', 'bmp'],        
        // each file size limit in bytes
        // this option isn't supported in all browsers
        sizeLimit: 10485760, // max size 10MB in bytes   
        minSizeLimit: 0, // min size

        // set to true to output server response to console
        debug: true,

        // events         
        // you can return false to abort submit
        onSubmit: function(id, fileName){
            $('#error').empty().hide();
            $('#message').empty().append('<img src="http://localhost/mofo/images/loading.gif"> Uploader billed.').css({'color':'#000', 'font-weight':'normal'}).show();

        },
        onProgress: function(id, fileName, loaded, total){

        },
        onComplete: function(id, fileName, responseJSON){
            if (responseJSON.success) {
                $('#message').empty().append(responseJSON.message).css({'color':'#000', 'font-weight':'normal'}).show();
                $('#thumb ul').append('<li><img src="http://localhost/mofo/' + responseJSON.thumbnail + '" /></li>');

            } else {
                $('#message').empty().append(responseJSON.error).css({'color':'red', 'font-weight':'bold'}).show();
            }
        },
        onCancel: function(id, fileName){},

        messages: {
            // error messages, see qq.FileUploaderBasic for content   
            typeError: "Filen: {file} er en ikke tilladt filtype. Kun {extensions} er tilladt.",
            sizeError: "Filen: {file} er for stor, maksimum størrelsen er {sizeLimit}.",
            minSizeError: "Filen: {file} er for lille, minimum file størrelse er {minSizeLimit}.",
            emptyError: "Filen: {file} er tom, vælg en anden fil.",
            onLeave: "Filerne er igang med upload, hvis du stopper nu bliver filerne ikke uploadet."          
        },
        showMessage: function(message){ 
            $('#message').empty().append(message).css({'color':'red', 'font-weight':'bold'}).show();         
        }

    });

});

我修改了Valums JS,因此它发送文件参数如下:

var queryString = this._options.action + '/' + params['qqfile'];

希望有人能弄清楚IE为什么会给我404错误。

1 个答案:

答案 0 :(得分:0)

404表示资源不是fount。检查您的行动路径是否正确 此外,如果要将文件名传递给服务器,则无需修改源代码。只需将其添加到onSubmit处理程序中的params选项。

onSubmit: function(id, fileName){
    this.params.fileName = fileName;
}

然后就像在任何其他参数一样在服务器端检索它。