用FileUpload控件怎么实现多图片上传

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用FileUpload控件怎么实现多图片上传相关的知识,希望对你有一定的参考价值。

FileUpload实现单图片上传,如果想多图片上传,你试试这个:
<tr>
<td align="right" valign="top">
试卷照片:
</td>
<td align="left">
<div id="_container">
<input id="File1" type="file" name="File" runat="server" size="10" />
</div>
</td>
<td align="left" valign="bottom">
<input type="button" value="添加" onclick="addFile()" />
</td>
</tr>
addFile()源码:
//多文件上传,动态生成多个上传控件
function addFile()
var div = document.createElement("div");
var f = document.createElement("input");
f.setAttribute("type", "file");
f.setAttribute("name", "file");
f.setAttribute("size", "10");
div.appendChild(f);
document.getElementById("_container").appendChild(div);


后台页面调用:
#region 上传添加图片的方法
/// <summary>
/// 上传添加图片的方法
/// </summary>
/// <param name="nId">关联id</param>
private static void UploadAndAddPicTures(int nId)

LMS.BLL.TRAIN_Pictrue PictrueBLL = new LMS.BLL.TRAIN_Pictrue();
List<LMS.Model.TRAIN_Pictrue> list = new List<LMS.Model.TRAIN_Pictrue>();
//遍历File表单元素
HttpFileCollection files = HttpContext.Current.Request.Files;
for (int iFile = 0; iFile < files.Count; iFile++)

//检查文件扩展名字
HttpPostedFile postedFile = files[iFile];
string fileName;
fileName = System.IO.Path.GetFileName(postedFile.FileName);
if (fileName.ToLower() != "")

LMS.Model.TRAIN_Pictrue Pictrue = new LMS.Model.TRAIN_Pictrue();
string scurTypeName = fileName.Substring(fileName.LastIndexOf("."));
//初始化原图物理路径
string sGuid_phy = Guid.NewGuid().ToString();
string sUrl_phy = ConfigurationManager.AppSettings["PhysicsObjectPath"].ToString() + sGuid_phy + scurTypeName;
//初始化缩略图物理路径
string sGuid_web = Guid.NewGuid().ToString();
string sUrl_web = ConfigurationManager.AppSettings["PhysicsObjectPath"].ToString() + sGuid_web + scurTypeName;
postedFile.SaveAs(sUrl_phy);//保存原图
PTImage.ZoomAuto(postedFile, sUrl_web, 100, 100, "", "");//生成缩略图,并保存
//保存原图虚拟路径到数据库
Pictrue.path = ConfigurationManager.AppSettings["WebObjectPath"].ToString() + sGuid_phy + scurTypeName;
//保存缩略图虚拟路径到数据库
Pictrue.shrinkpath = ConfigurationManager.AppSettings["WebObjectPath"].ToString() + sGuid_web + scurTypeName;
Pictrue.parid = nId;
Pictrue.tables = "TRAIN_Hotel_MonthExam";
list.Add(Pictrue);


PictrueBLL.Add(list);

#endregion
希望对你有帮助!
参考技术A 单存的FileUpload控件无法实现多图片上传!要做成那种多选效果一般现在用 as编写的flash控件!效果相当不错!!你可以在网上找找

C#图片上传到文件夹

现在有一个页面... 上面有一个Button按钮.用来上传图片...我想点击button后打开一个对话框用来选取图片.. 然后保存到服务器文件夹中...最后在页面的image控件用显示.....希望各位大虾教教小弟..谢谢!!!

.net使用FileUpLoad控件上传文件2008-04-23 15:24单个文件的上传:保存到上传服务器指定目录: FileUpload1.Save(Server.MapPath("/upfiles/upload/") +FileUpload1.FileName);

得到上传文件的文件名(含上传本地路径):FileUpload1.PostedFile.FileName;得到上传文件的大小:FileUpload1.PostedFile.ContentLength;得到上传文件上传类型:FileUpload1.PostedFile.ContentType;得到上传文件扩展名:System.IO.Path.GetExtension(FileUpload1.FileName);得到上传文件名:FileUpload1.FileName;同时多个文件的上传:
方法是将 System.IO 类导入到 ASP.NET 页中,然后使用 HttpFileCollection 类捕获通过 Request 对象发送来的所有文件。该方法使您可以从一个页面上载所需数量的文件。

使用 HttpFileCollection 类和 Request.Files 属性使您可以控制从该页上载的所有文件。
(你可以在上传页面上放N个FileUpload控件)得到上传的文件名:System.IO.Path.GetFileName(FileUpload1.FileName);//Request.Files得到的多部分MIME格式的由客户端上载的文件的集合都是包含上传本地完整路径的。

protected void Button1_Click(object sender, EventArgs e)

string filepath = Server.MapPath("/upfiles/upload/") ;
HttpFileCollection uploadedFiles = Request.Files;

for (int i = 0; i < uploadedFiles.Count; i++)

HttpPostedFile userPostedFile = uploadedFiles[i];

try

if (userPostedFile.ContentLength > 0 )

Label1.Text += "File #" + (i+1) +
"";
Label1.Text += "File Content Type: " +
userPostedFile.ContentType + "";
Label1.Text += "File Size: " +
userPostedFile.ContentLength + "kb";
Label1.Text += "File Name: " +
userPostedFile.FileName + "";

userPostedFile.SaveAs(filepath + "\\" +
System.IO.Path.GetFileName(userPostedFile.FileName));

Label1.Text += "Location where saved: " +
filepath + "\\" +
System.IO.Path.GetFileName(userPostedFile.FileName) + "";


catch (Exception Ex)

Label1.Text += "Error: " + Ex.Message;

参考技术A 首先导入命名空间:
using System.IO;
假使页面上有一个FileUpload控件FileUpload1;和一个Button1
我们在Button1的click事件中这样写:
private void Button1_Click(Object sender,EventArges e)

// 取得上传的文件对象
HttpPostedFile hpf = FileUpload1.PostedFile;
// 取得文件路径
string filePath = hpf.FileName;
// 从路径中取出文件名用来作为保存的文件名
string filePath = Path.GetFileName(filePath);
// 取得服务器站点根目录的绝对路径
string serverPath = Server.MapPath("~/");
// 保存文件
hpf.Save(serverPath + filePath);
参考技术B vs2005以上的话拖一个FileUpload组件上去,代码里用它的SaveAs函数保存一下就行 参考技术C 我以前在做的是整体上传。。。整体下载,记得当时还用zip.dll才实现呢。。。 参考技术D FileUpload组件很方便

以上是关于用FileUpload控件怎么实现多图片上传的主要内容,如果未能解决你的问题,请参考以下文章

jQuery fileupload 多文件上传

php网页批量上传图片是怎么实现的,有没有例子,或插件

用FileUpLoad控件上传图片后,如何将读取出的图片路径存储下来?

用FileUpLoad控件上传图片后,如何将读取出的图片路径存储下来?

用fileupload控件上传文件怎样使上传的文件显示在指定的位置

asp.net怎么用上传控件,上传图片!