文章类型: .NET
关键词: ajax,c#,xmlhttprequest,string,url,javascript
内容摘要:

C#+ajax上传文件

2015/7/28 17:00:14    来源:apple    阅读:
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();
    } 
}
<body>
    <form id="form1" runat="server">
    <div>
        <input id="UpLoadFile" type="file" style="width:400px;" />
        <input id="Button1" type="button" value="上传" onclick="javascript:reqUpLoad();"/>
    </div>
    </form>
    <script language="javascript" type="text/javascript">
       function reqUpLoad()
       {
           var upInupt = document.getElementById("UpLoadFile");
           var url = "activeuploadfile.aspx?upfile=" + encodeURI(upInupt.value);
           var reFilePath = RequestUrlAction(url);
           document.getElementById("showImage").innerHTML = "<img src='"+reFilePath+"' />";
       }

/获取远程数据(兼容多浏览器)
function RequestUrlAction(URL) 
{
    var xmlhttp = null;
    if (URL.indexOf('?') == -1) {
        URL = URL + "?randomid=" + Math.random();
    }
    else {
        URL = URL + "&randomid=" + Math.random();
    }
    if(window.XMLHttpRequest){
       xmlhttp = new XMLHttpRequest(); //火狐浏览器。
    }
    else if(window.ActiveXObject){
       xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); //IE浏览器。
       if (!xmlhttp) {
           xmlhttp = new ActiveXObject("Microsoft.XML" + "HTTP");
       }
    }
    
    if(xmlhttp)
    {
        xmlhttp.open("GET",URL, false); //加载url对应的远程服务器来处理我们提交的数据。
        xmlhttp.send(null);
        
        if(xmlhttp.readyState == 4)
        {
            if(xmlhttp.status == 200)
            {
                return(xmlhttp.responseText); 
            }
        }
        delete(xmlhttp)
    }
    else
    {
        alert("对不起,您的浏览器不支持XMLHttpRequest组件,请上google搜索相关解决方案!")
    }
}
    </script>
    <span id="showImage"></span>
</body>


↑ 上一篇文章:ASP.NET(C#)实现一次性上传多张图片(多个文件) 关键词:ASP.NET,C#,一次性,上传,多张图片,多个文件 发布日期:2015/7/28 16:07:24
↓ 下一篇文章:jQuery插件之ajaxFileUpload 关键词:ajax,fileupload,jquery,插件 发布日期:2015/7/28 17:01:28
相关文章:
C# 中怎么将string转换成int型 关键词:C#,string,转换,int 发布日期:2018-08-17 14:28
浅淡反射问题 关键词:C#,Reflection,convert,string,variable 发布日期:2015-07-29 14:47
JS和C#中的字符串编码解码(二) 关键词:JS,C#,字符串,编码,解码,UrlEncode,UrlDecode 发布日期:2015-07-14 16:35
相关目录:.NET软件开发JAVASCRIPTANDROID
我要评论
正在加载评论信息......