2011-05-02 40 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

相關問題