【问题标题】:Uploading Image and Fixing/Veryfing it's size with <input type="file">?使用 <input type="file"> 上传图像并修复/验证其大小?
【发布时间】:2011-05-03 21:17:52
【问题描述】:

我使用 ASP .NET 3.5 C#,我想获取用户尝试上传的图片

&lt;input type="file" name="uploadPicture" id="uploadPicture"&gt;我可以用吗:

Request.Form["uploadPicture"];

接下来呢?

从来没有玩过用表单上传文件, 我希望将此文件保存在我的文件系统中,并将路径保存在数据库中。

我还需要检查格式、大小和尺寸,如果可能的话,甚至可以调整它的大小。

谢谢, 丹

【问题讨论】:

    标签: c# asp.net image-processing file-upload request.form


    【解决方案1】:

    这样使用

    HttpFileCollection files = Request.Files;
    

    【讨论】:

    • ** HttpFileCollection files = Request.Files; 谢谢,下一步是什么?我浏览了集合,我没有看到任何格式检查/调整大小/大小检查。
    • 使用 Foreach 循环并访问您可以使用 google 获取文件格式/调整大小/大小的所有文件
    【解决方案2】:

    查看以下代码

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default7.aspx.cs" Inherits="Default7" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server" enctype="multipart/form-data">
        <div>
            <input type="file" name="uploadPicture" id="uploadPicture">
        </div>
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Upload" />
        </form>
    </body>
    </html>
    

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class Default7 : System.Web.UI.Page
    {
    
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            string baseImageLocation = Server.MapPath("Images\\");
            HttpFileCollection uploads = HttpContext.Current.Request.Files;
    
            HttpPostedFile file = uploads["uploadPicture"];
            string fileExt = Path.GetExtension(file.FileName).ToLower();
            string fileName = Path.GetFileName(file.FileName);
            if (fileName != "")
            {
                if (fileExt == ".jpg" || fileExt == ".gif")
                    file.SaveAs(baseImageLocation + fileName);
    
            }
        }
    }
    

    编辑

    您可以从 HttpPostedFile 获取图像大小,如下所示

      int size = file.ContentLength;
    

    对于图像的高度和宽度,您可以使用以下函数

     private void GetHeightAndWidht(string image)
        {
            Bitmap bmp = new Bitmap(image);
            int height = bmp.Height;
            int width = bmp.Width;
        }
    

    【讨论】:

    • HttpFileCollection uploads = HttpContext.Current.Request.Files; 总是返回一个空集合...
    • @Danpe:请检查您是否在表单部分设置了 enctype 属性(enctype="multipart/form-data")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2016-05-25
    • 1970-01-01
    • 2019-09-11
    • 1970-01-01
    相关资源
    最近更新 更多