读书人

小弟我做的AJAX下传文件功能在本机正

发布时间: 2012-07-22 19:31:16 作者: rapoo

我做的AJAX上传文件功能,在本机正常使用,但是上传到服务器后就不再起作用,请高手帮我看看!!!!!!!

HTML code
<input id="file" style="width: 300px" onchange="tree_showpic()" type="file" />ajax执行异步上传 var content="path="+tree_$("file").value; dosavemymy("loadpic.aspx",content,"uploadpic");


C# code
Page_Load调用上传函数 string loadmes = UpLoadFile(Request.Form["path"]); Response.Write(loadmes); Response.End(); return;上传函数   private string UpLoadFile(string fileNamePath)    {        //获取上传图片格式        string fileNameExt = fileNamePath.Substring(fileNamePath.LastIndexOf(".") + 1).ToLower();        if ("jpg|gif|png|bmp".IndexOf(fileNameExt) >= 0)        {            //根据用户ID指定头像存储地址            int userid = Int32.Parse(Request.Cookies["mymyid"].Value.ToString());            string mainpath = Server.MapPath("../");            string savepath1 = mainpath + "mymyfiles\\" + ((int)(userid / 1000)).ToString() + "\\" + ((int)(userid / 100)).ToString() + "\\" + userid.ToString() + "\\" + "headpic1.jpg";                        //创建WebClient实例                   WebClient myWebClient = new WebClient();            myWebClient.Credentials = CredentialCache.DefaultCredentials;            //       要上传的文件                       FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);            BinaryReader r = new BinaryReader(fs);            try            {                byte[] postArray = r.ReadBytes((int)fs.Length);                Stream postStream = myWebClient.OpenWrite(savepath1, "PUT");                if (postStream.CanWrite)                {                    postStream.Write(postArray, 0, postArray.Length);                    postStream.Close();                                                           return "恭喜您,文件上传成功!";               }                else                {                    postStream.Close();                    return "文件目前不可写!";                }            }            catch(Exception e)            {                return "对不起上传出错,请稍后再试。错误信息:"+e.Message.ToString();            }        }        else            return "上传的文件格式不对,必须为GIF、JPG、PNG和BMP中的一种!";    }


以上代码在本机里执行上传很正常,但是上传到服务器后就不能使用了。我估计原因可能是代码限制只能上传本地的文件,请高手帮我看看怎么解决

[解决办法]
你的方向走错了。


上传文件,只能通过表单提交的方式来实现。不可能通过纯js实现。

可以用js来调用表单提交。
[解决办法]
探讨

在upload.aspx里写:

Request.Files[0].SaveAs("xxxx.....

Response.Write(" <script>alert('上传成功'); </script>");

[解决办法]
小灰说的不错,只能利用表单方式提交.

HTML code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="upload.aspx.cs" Inherits="upload" %><!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>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <link href="css/css.css" rel="stylesheet" type="text/css" />    <script type="text/javascript" src="js/jquery-1.2.3.min.js"></script>    <script type="text/javascript" src="js/interface.js"></script>    <style type="text/css">        *{ margin:0; padding:0; }            </style>    <script type="text/javascript">                var uploadSelect = function(el){            el.fadeOut("show");                    parent.click_upload(document.getElementById("<%=file1.ClientID %>").value,'<%=itemID %>');            $("#<%=frmUpload.ClientID %>").submit();        };             </script></head><body>    <form runat="server" id="frmUpload" method="post" enctype="multipart/form-data">        <input type="file" runat="server" class="kuang" id="file1" size="40" onchange="uploadSelect($(this));" />            </form></body></html> 

读书人网 >asp.net

热点推荐