C#保存上传来的图片是一项常见的操作,下面是一个完整的攻略说明:
1.前置条件
在进行C#保存上传来的图片的操作时,首先我们需要创建一个ASP.NET Web应用程序。创建完成后,我们需要在Web.config配置文件中设置文件上传的相关参数:
<system.web>
<httpRuntime maxRequestLength="1048576" />
<compilation debug="true" targetFramework="4.5" />
<authentication mode="None" />
<pages controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID">
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
其中maxRequestLength表示请求上传文件的最大长度(单位:KB),默认为4MB。若文件大小超过最大上传限制,则会抛出异常。
2.保存图片代码示例
第一条示例:
if(Request.Files.Count > 0)
{
HttpPostedFileBase upload = Request.Files[0];
if (upload != null && upload.ContentLength > 0)
{
string imageName = Path.GetFileName(upload.FileName);
string imagePhysicalPath = Server.MapPath("~/Uploads/" + imageName);
//保存图片到服务器
upload.SaveAs(imagePhysicalPath);
//显示保存结果
Response.Write("图片上传成功");
}
}
上述代码会从Request中获取上传文件,判断文件是否为空,若文件不为空则通过Server.MapPath获取保存路径,并通过SaveAs将文件保存到指定位置。
第二条示例:
FileStream fs = new FileStream(Server.MapPath("~") + "Upload/" + filename, FileMode.CreateNew);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(fileBytes);
bw.Close();
fs.Close();
上述代码中利用了FileStream和BinaryWriter两个对象,通过二进制方式写入文件数据流。其中,Server.MapPath用于将相对路径转换成绝对路径,FileMode.CreateNew表示创建一个新文件,若原先存在同名文件,则会覆盖原先文件。
总结
以上两条C#保存上传来的图片示例代码,可以应用于不同场景。第一条代码操作较为简单,适用于小文件上传;第二条代码需要额外的文件流操作,用于处理大文件上传的情况。需要根据实际需求选择合适的代码段。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#保存上传来的图片示例代码 - Python技术站