0

我无法在 IE 中使用 Fineuploader 上传图片。在 chorme 和 FireFox 中工作。

知道为什么在 IE 中上传 jpg 不起作用。我注意到 chrome 请求对象上下文类型是“application/octet-stream”,而 IE 不是。如果是这样的话,这是问题吗?我要改变什么来让fineuploader在请求中使用这个上下文类型。

谢谢 // 设置上传器。if (document.getElementById('formUpload')) { var description = ""; var 文件名 = ""; var fileUploader = new qq.FileUploader({

            allowedExtensions: viewModel.AllowedFileExt(),
            element: document.getElementById('formUpload'),
            action: '../Upload/UploadHandler.ashx',
            params: {
                submissionNumber: function () {
                    submissionNumber = $("#SubmissionNumber").val();
                    return submissionNumber;
                },
                fileName: function () {
                    fileName = $(".qq-upload-file").text();
                    return fileName;
                },
                description: function () {
                    description = $("#txtAttachmentDesciption").val();
                    return description;
                }
            },
            onComplete: function (id, fileName, responseJSON) {
                $("#attachedFiles").html("");
                loadAttachments($("#Number").val());
            },
            onSubmit: function (id, fileName) {
                fileUploader.filesSelectedForUpload = 1;

            },
            autoUpload: false,
            multiple: false
        });
        fileUploader.filesSelectedForUpload = 0;
    }
4

1 回答 1

0

问题出在服务器端。在 IE 中使用 "context.Request.Files["qqfile"].InputStream" 而不是 context.Request.InputStream

//if IE
var buffer = new byte[context.Request.ContentLength];
            using (var br = new BinaryReader(context.Request.Files["qqfile"].InputStream))
                br.Read(buffer, 0, buffer.Length);
//ELSE

var buffer = new byte[context.Request.ContentLength];
            using (var br = new BinaryReader(context.Request.InputStream))
                br.Read(buffer, 0, buffer.Length);
于 2013-03-20T19:53:54.977 回答