小弟我做的AJAX下传文件功能,在本机正常使用,但是下传到服务器后就不再起作用,请高手帮小弟我看看!
我做的AJAX上传文件功能,在本机正常使用,但是上传到服务器后就不再起作用,请高手帮我看看!!!!!!!
以上代码在本机里执行上传很正常,但是上传到服务器后就不能使用了。我估计原因可能是代码限制只能上传本地的文件,请高手帮我看看怎么解决
------解决方案--------------------
你的方向走错了。
上传文件,只能通过表单提交的方式来实现。不可能通过纯js实现。
可以用js来调用表单提交。
------解决方案--------------------
------解决方案--------------------
小灰说的不错,只能利用表单方式提交.
- 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来调用表单提交。
------解决方案--------------------
------解决方案--------------------
小灰说的不错,只能利用表单方式提交.
- 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>