0

我想将输入(类型 = 文件)图像保存到数据库(asp.net 和 mssql),
在这种情况下,我使用 Web 服务,所以我不能使用 runat= 服务器,或者我不能使用服务器端控件。

在客户端,用户选择了一张图片,我必须将其二进制保存到数据库中。

var exts = ['jpg', 'jpeg', 'png', 'gif'];  
var file = $(this).val();
if (file) {
                var get_ext = file.split('.');
                get_ext = get_ext.reverse();
                if ($.inArray(get_ext[0].toLowerCase(), exts) > -1) {
                    if ((Math.round((this.files[0].size) / 1024)) > 35) {
                        alert("PLEASE REDUCE FILE SIZE");
                    } else {
                        //everything is ok
                    }
                } else {
                    alert("PLEASE CORRECT FORMAT");
                }
            } else {
                alert("PLEASE DEFINE FILE");
  }

我可以检查选择的文件、类型和大小,并知道需要上传。

我能做些什么?是否可以支持,即?如果是,哪个版本?

谢谢你

4

1 回答 1

0

您必须使用下一个标签以表单形式上传图像:

<form id='fileUploadForm' enctype="multipart/form-data" method="post" action="yourAction">          
<input type="hidden" value="your max value in bytes" name="MAX_FILE_SIZE">
<input type="file" name="userImage">
</form>

它将为任何浏览器提交。

但是如果你想使用 ajax 提交表单,你应该使用插件。我最近使用了这个: http: //malsup.github.io/jquery.form.js。使用起来非常简单。

还有一个问题:如果使用 IEfiles[0]会返回。undefined

我使用它以便 IE 也可以工作:

var file = $('input[type=file]')
file.bind('change', function(e) {
    e.preventDefault();
    if (typeof this.files === "undefined") fileOk = file;
    else fileOk = this.files[0];
            ....

然后,在客户端验证后,您可以使用 jquery.form 插件中的此方法:

$('#fileUploadForm').ajaxSubmit(){
    beforeSend: function() {},
    uploadProgress: function(event, position, total, percentComplete) {},
    success: function() {},
    complete: function(xhr) {}
}

并且文件将被提交。

于 2013-10-14T12:18:14.867 回答