首页 / ASP.NET / Asp.Net:上传文件
Asp.Net:上传文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Asp.Net:上传文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3052字,纯文字阅读大概需要5分钟。
内容图文
Asp.Net中很方便就能做个上传,例如做一个图片的上传:
< asp:FileUpload ID ="picUpload" runat ="server" /> < asp:Button ID ="btnUpload" runat ="server" Text ="上传" CssClass ="btn" onclick ="btnUpload_Click" CausesValidation ="false" />
对应的上传代码如下:
protected void btnUpload_Click(object sender, EventArgs e) { if (!picUpload.HasFile) { picAssetItem.ImageUrl = ""; labUpload.Text = "请选择要上传的图片"; return; } string fileExtension = Path.GetExtension(picUpload.FileName).ToLower(); Match match = Regex.Match(fileExtension, "jpg|jpeg|png"); if (!match.Success) { picAssetItem.ImageUrl = ""; labUpload.Text = "请上传jpg或者png格式的图片"; return; } if (picUpload.PostedFile.ContentLength > 8192000) { picAssetItem.ImageUrl = ""; labUpload.Text = "文件大小超出8M!请重新选择!"; return; } string uploadPath = ConfigurationManager.AppSettings["UploadPath"]; uploadPath += DateTime.Today.ToString("yyyy-MM-dd"); if (!Directory.Exists(Server.MapPath(uploadPath))) { log.Info("Creating folder " + uploadPath + " on server"); try { Directory.CreateDirectory(Server.MapPath(uploadPath)); } catch (Exception ex) { log.Error("Failed to create folder"); log.Error(ex); labUpload.Text = "系统错误,上传失败"; return; } } string imageUUID = System.Guid.NewGuid().ToString(); string imageName = imageUUID + fileExtension; string imagePath = Server.MapPath(uploadPath + "/" + imageName); string thumbImagePath = Server.MapPath(uploadPath + "/thumb-" + imageName); try { picUpload.PostedFile.SaveAs(imagePath); System.Drawing.Image image = System.Drawing.Image.FromStream(picUpload.PostedFile.InputStream, true); System.Drawing.Size newSize = new System.Drawing.Size(400, 300); System.Drawing.Image bitmap = new System.Drawing.Bitmap(newSize.Width, newSize.Height); System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(bitmap); graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; graphics.Clear(System.Drawing.Color.White); graphics.DrawImage(image, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), new System.Drawing.Rectangle(0, 0, image.Width, image.Height), System.Drawing.GraphicsUnit.Pixel); bitmap.Save(thumbImagePath, System.Drawing.Imaging.ImageFormat.Jpeg); } catch (Exception ex) { log.Error("Failed to save image"); log.Error(ex); labUpload.Text = "系统错误,上传失败"; return; } txtImagePath.Text = DateTime.Today.ToString("yyyy-MM-dd") +"/" + imageName; picAssetItem.ImageUrl = uploadPath + "/thumb-" + imageUUID + ".jpg"; labUpload.Text = "上传成功"; }
上面的代码是把图片存到本地的文件夹中,按日期进行存储,存储的文件用uuid进行命名。同时生成一张固定大小的缩略图,用来显示用。
上传小文件,还是蛮方便的,不过需要注意的是,对服务器的文件夹,必须对NETWORK组添加读写的权限:
另外,貌似只能上传小于4M 的文件,稍大的文件上传会直接无法显示网页。这个也是可以设置的,具体不想深究,能用就行:
< system.web > ... <!-- 加入下面设置 --> < httpRuntime executionTimeout ="90" maxRequestLength ="40960" useFullyQualifiedRedirectUrl ="false" minFreeThreads ="8" minLocalRequestFreeThreads ="4" appRequestQueueLimit ="100" /> </ system.web >
原文:http://www.cnblogs.com/jpeg/p/upload-files-in-asp.html
内容总结
以上是互联网集市为您收集整理的Asp.Net:上传文件全部内容,希望文章能够帮你解决Asp.Net:上传文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。