2011-05-02 87 views
3

我使用ASP .NET 3.5 C#,和我喜欢对子级以获取用户试图从上传图片和修复/使用<input type =“file”>加大尺寸?

<input type="file" name="uploadPicture" id="uploadPicture">我可以只用上传的图片:

Request.Form["uploadPicture"]; 

而下一步是什么?

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

我还需要检查格式,大小和尺寸,甚至可能调整大小。

感谢, 丹

回答

0

看看下面的代码

<%@ 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; 
    } 
+0

'HttpFileCollection uploads = HttpContext.Current.Request.Files;' 总是返回一个空集合... – Danpe 2011-05-05 21:19:49

+1

@Danpe:请检查您是否有在表单部分设置enctype属性(enctype =“multipart/form-data”) – 2011-05-06 04:45:04

1

使用这样

HttpFileCollection files = Request.Files; 
+0

**'HttpFileCollection文件= Request.Files;' 谢谢,接下来是什么? 我通过集合运行,我没有看到任何格式检查/调整大小/大小检查。 – Danpe 2011-05-02 14:36:24

+0

使用Foreach循环并访问所有文件ü可以使用google for fileformat/resize/size – 2011-05-02 14:51:06

相关问题