表单中enctype="multipart/form-data"的意思,是设置表单的MIME 编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart /form-data,才能完整的传递文件数据,进行下面的操作.
enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!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 method="post" enctype="multipart/form-data" action="Default2.aspx">
    <div>
    <input type="file" name="img" /><input type="submit"  value="提交" /></div>
    </form>
</body>
</html>

 

 

using System;
using System.Web;
using System.IO;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //图片保存
        HttpFileCollection files = Request.Files;
        string fileDestination = string.Empty;
        if (files.Count > 0)
        {
            HttpPostedFile postedFile = Request.Files[0];
            string fileName = Path.GetFileName(postedFile.FileName);
            if (fileName != "")
            {
                SaveFile(postedFile, "IMAGE");
            }
        }
    }

    public string SaveFile(HttpPostedFile postedFile, string postType)
    {
        string UploadFileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Millisecond.ToString();
        string extension = Path.GetFileName(postedFile.FileName);
        string strFileName = HttpContext.Current.Request.ApplicationPath + "//UpLoadFile//" + postType + "//" + System.DateTime.Today.Year.ToString() + "//" + System.DateTime.Today.Month.ToString() + "//";
        string root = System.Web.HttpContext.Current.Server.MapPath(strFileName);
        string destination = System.Web.HttpContext.Current.Server.MapPath(strFileName) + UploadFileName + extension;
        string path = "/UpLoadFile/" + postType + "/" + System.DateTime.Today.Year.ToString() + "/" + System.DateTime.Today.Month.ToString() + "/" + UploadFileName + extension;
        if (!Directory.Exists(root))
        {
            Directory.CreateDirectory(root);
        }
        postedFile.SaveAs(destination);
        return path;
    }
  
}

 



posted on 2012-03-07 16:16  slc  阅读(797)  评论(0编辑  收藏  举报