日期:2014-05-17  浏览次数:20425 次

我做的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