jquery,如何通过Web服务将输入(文件)的图像上传到代码隐藏并在那里读取
本文关键字:图像 代码 隐藏 读取 在那里 Web 何通过 服务 文件 输入 jquery | 更新日期: 2023-09-27 18:35:27
我想将输入(类型 = 文件)图像保存到数据库 (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");
}
我可以检查所选文件,类型和大小,并知道需要上传。
我能做什么?是否可以支持,即?如果是,哪个版本?
谢谢
您必须使用下一个标签在表单中上传图像:
<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。使用起来非常简单。
还有另一个问题:如果使用 IE,files[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) {}
}
文件将被提交。