在asp中实现图片批量上传,可以使用第三方组件如aspose.words或freeimage等。
ASP图片批量上传
1. 功能
自定义目录:可以根据自己的需要更改上传到服务器上的目录,上传的源图、缩略图、文字水印图和图片水印图分别存入所定目录下的不同目录。
自动检查和创建目录:自动检查目录,如无所选择的目录,则自动创建它们。
生成缩略图:自行设定生成缩略图的大小。
水印选项:可以选择是否需要生成文字水印、图片水印,默认为不生成水印图。
图片管理:可以添加、删除所需上传的图片。
2. 后台代码解析
public partial class BackManagement_ImagesUpload : System.Web.UI.Page { public string treePath = ""; public int imageW = 100; public int imageH = 100; protected void Page_Load(object sender, EventArgs e) { this.Button5.Attributes.Add("Onclick", "window.close();"); // 在本地关闭当前页,而不需要发送到服务器去关闭当前页时 if (!Page.IsPostBack) { Label2.Text = Server.MapPath("/"); TextBox3.Text = "ImageUpload"; treePath = Server.MapPath("/") + TextBox3.Text.Trim() + "/"; TextBox4.Text = imageW.ToString(); TextBox5.Text = imageH.ToString(); } } protected void btnload_Click(object sender, EventArgs e) { treePath = Server.MapPath("/") + TextBox3.Text.Trim() + "/"; imageW = Convert.ToInt32(TextBox4.Text.ToString()); imageH = Convert.ToInt32(TextBox5.Text.ToString()); if (!File.Exists(treePath + "images")) // ImageUpload/images不存在,则创建/ImageUpload/images,用于存放源图片 { System.IO.Directory.CreateDirectory(treePath + "images"); } if (!File.Exists(treePath + "thumbnails")) // ImageUpload/thumbnails不存在,则创建/ImageUpload/thumbnails,用于存放缩略图片 { System.IO.Directory.CreateDirectory(treePath + "thumbnails"); } if (!File.Exists(treePath + "textImages")) // ImageUpload/textImages不存在,则创建/ImageUpload/textImages,用于存文字水印图片 { System.IO.Directory.CreateDirectory(treePath + "textImages"); } if (!File.Exists(treePath + "waterImages")) // ImageUpload/waterImages不存在,则创建/ImageUpload/waterImages { System.IO.Directory.CreateDirectory(treePath + "waterImages"); } if (FileUpload1.HasFile) // 如果是true,则表示该控件有文件要上传 { string fileContentType = FileUpload1.PostedFile.ContentType; if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg") { // 处理文件上传逻辑 } } } }
3. 关键属性和方法
属性/方法 | 描述 |
FileUpload1.HasFile | 如果为true,则表示该控件有文件要上传。 |
FileUpload1.FileName | 返回要上传文件的名称,不包含路径信息。 |
FileUpload1.FileContent | 返回一个指向上传文件的流对象。 |
FileUpload1.PostedFile | 返回已经上传文件的引用。 |
FileUpload1.PostedFile.ContentLength | 返回上传文件的按字节表示的文件大小。 |
FileUpload1.PostedFile.ContentType | 返回上传文件的MIME内容类型,也就是文件类型,如返回”image/jpg”。 |
FileUpload1.PostedFile.FileName | 返回文件在客户端的完全路径(包括文件名全称)。 |
FileUpload1.PostedFile.InputStream | 返回一个指向上传文件的流对象。 |
FileInfo | 表示磁盘或网络位置上的文件,提供文件的路径,就可以创建一个FileInfo对象。 |
4. 相关问题与解答
问题1:如何更改上传图片的保存目录?
答:可以在代码中修改treePath
变量的值来更改上传图片的保存目录,将treePath
设置为Server.MapPath("/newUploadPath")
即可更改上传目录为newUploadPath
。
问题2:如何实现图片的缩略图功能?
答:可以使用图形处理库(如System.Drawing)来实现图片的缩略图功能,在上传图片后,读取图片并使用Graphics
类绘制缩放后的图像,然后保存为新的文件即可,具体实现可以参考以下代码片段:
using (System.Drawing.Image originalImage = System.Drawing.Image.FromStream(fileUpload1.PostedFile.InputStream)) { using (System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(originalImage, new System.Drawing.Size(imageW, imageH))) { bitmap.Save(treePath + "thumbnails/" + Path.GetFileName(fileUpload1.PostedFile.FileName)); } }
小伙伴们,上文介绍了“asp图片批量上传”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/58421.html<