C#+ajax上传文件

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;
using System.Net;


public partial class activeuploadfile : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string _fileNamePath = "";
        _fileNamePath = Request.QueryString["upfile"].ToString();
        _fileNamePath = Server.UrlDecode(_fileNamePath);
        //开始上传
        string _savedFileResult = UpLoadFile(_fileNamePath);
        Response.Write(_savedFileResult);
        Response.End();
    }


    protected string UpLoadFile(string fileNamePath)
    {
        int dindex= fileNamePath.IndexOf('.');
        string fileNameExt = fileNamePath.Substring(dindex, fileNamePath.Length - dindex);
        //生成将要保存的随机文件名
        string fileName = GetFileName() + fileNameExt;
        //物理完整路径
        string toFilePath = "~/UpFile/";
        string rootFullPath = Server.MapPath(toFilePath);
        //检查是否有该路径 没有就创建
        if (!Directory.Exists(rootFullPath))
        {
            Directory.CreateDirectory(rootFullPath);
        }
        ///创建WebClient实例
        WebClient myWebClient = new WebClient();
        //设定windows网络安全认证 方法1
        myWebClient.Credentials = CredentialCache.DefaultCredentials;
        //要上传的文件
        FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);
        //FileStream fs = OpenFile();
        BinaryReader r = new BinaryReader(fs);
        //使用UploadFile方法可以用下面的格式
        byte[] postArray = r.ReadBytes((int)fs.Length);
        string toFileFullPath = rootFullPath + fileName;
        Stream postStream = myWebClient.OpenWrite(toFileFullPath, "PUT");
        if (postStream.CanWrite)
        {
            postStream.Write(postArray, 0, postArray.Length);
        }
        postStream.Close();
        fs.Close();
        myWebClient.Dispose();
        return toFileFullPath;
    }

    protected string GetFileName()
    {
        Random rd = new Random();
        StringBuilder serial = new StringBuilder();
        serial.Append(DateTime.Now.ToString("yyyyMMddHHmmssff"));
        serial.Append(rd.Next(0, 999999).ToString());
        return serial.ToString();
    }
}

 

aspx:


   


   

       
       
   

   

   
   

你可能感兴趣的:(Asp.Net技术)