现在有这样一个需求,需要上传多张图片,但是又不是一次性选择多张图片,而是有多个File,如下:
<p>会计证</p>
<input type="file" id="UserImage1" name="UserImage1" onchange="previewImage(this)"style="display: none;" class="previewImg">
<p>身份证</p>
<input type="file" id="UserImage2" name="UserImage2" onchange="previewImage(this)" style="display: none;" class="previewImg">
<input type="file" id="UserImage3" name="UserImage3" onchange="previewImage(this)" style="display: none;" class="previewImg">
<button type="button">上传图片</button>
单点击按钮的时候把选择的几张图片同时上传到服务器,该如何实现呢?如果是只上传一张好办,关键现在是多个File,多张图片,不知道大家有啥好的办法没?
这个问题我上次遇见过, 我上传的 是多个文件不是图片 , 页面提交后 在后台可以获取到 页面上载的 所有文件
IEnumerable<HttpPostedFileBase>
............................................................................................
public string SavaFileBC(IEnumerable<HttpPostedFileBase> Files)
{
try
{
string FID = "";
string FName = "";
HttpFileCollectionBase files = Request.Files;
for (int i = 0; i < files.Count; i++)
{
HttpPostedFileBase File = files[i];
if (File != null && File.ContentLength > 0)
{
string FileName = File.FileName; //上传的原文件名
//得到文件的后缀名
string FileType = FileName.Substring(FileName.LastIndexOf(".") + 1).ToLower();
//得到提交的文件
Stream fileDataStream = File.InputStream;
//得到文件大小
int fileLength = File.ContentLength;
//创建数组
byte[] fileData = new byte[fileLength];
//把文件流填充到数组
fileDataStream.Read(fileData, 0, fileLength);
//得到文件名字
string fileTitle = File.FileName;
//得到文件类型
string fileType = FileType;
WenJian w = new WenJian();
w.WenJianI = fileData;
//文件标题
w.WenJianNane = fileTitle;
//添加时间
w.WenjianTime = System.DateTime.Now;
//文件类型
w.WenJianType = fileType;
w.ID = WJ.AddWenJian(w);
if (string.IsNullOrWhiteSpace(FID))
{
FID = w.ID.ToString();
}
else
{
FID = FID + "," + w.ID.ToString();
}
if (string.IsNullOrWhiteSpace(FName))
{
FName = w.WenJianNane.ToString();
}
else
{
FName = FName + "," + w.WenJianNane.ToString();
}
}
}
string json = "{'ID':'" + FID + "','WenJianNane':'" + FName + "'}";
return json;
//string json = "{'ID':" + w.ID + ",'WenJianNane':'" + w.WenJianNane + "'}";
//return json;
}
catch (Exception)
{
return null;
}
}
你这种方法我仔细看了,貌似的可以的,但我还没时间去试!
HttpPostedFileBase不就ok了吗
这个只能一次传一张,页面上是有多个file标签的。。。。
首先,页面时页面,实现是实现,遍历所有的input,将所有的File加入一个数组中,
var fileArray=[];
function onchange(this){
fileArray.push(...);不知道什么架构,反正往里面放文件就是了
}
是用的Asp.net MVC4
像这种需求的不是都有插件么
不用任何插件