<input id="file" style="width: 300px" onchange="tree_showpic()" type="file" />
ajax执行异步上传
var content="path="+tree_$("file").value;
dosavemymy("loadpic.aspx",content,"uploadpic");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中的一种!";
}
以上代码在本机里执行上传很正常,但是上传到服务器后就不能使用了。我估计原因可能是代码限制只能上传本地的文件,请高手帮我看看怎么解决
解决方案 »
- asp.net中怎样验证ip的输入是否正确,高手帮帮忙啊!
- TreeView控件里的checkbox事件,可以用无刷新实现吗?
- 简单的SQL查询加DATAGRID 问题
- Substitution如何在GridView中使用
- 在C#中怎么实现用户的输入和输出表现一致????
- Gridview的显示问题??(上线等!!)
- 关于XML
- 如何给变量赋值 急
- 求救:MVC4项目,部署远程,登陆后出现类似 http://xx.com/(F(*****省略*****))/ 访问任何页面都需要重新登录
- 为什么用c#生成的asp.net项目无法运行?
- VS2005用“文件系统”编译成功,可是运行却打不开所需的网站,显示找不到该网站。
- ▶▶▶▶▶▶▶小白请教:未能找到元数据文件“G:\NetFiles\LibrarySystem\Model\bin\Debug\Model.dll”
ajax执行异步上传
var content="path="+tree_$("file").value;
dosavemymy("loadpic.aspx",content,"uploadpic");
=========================================
我这个获取客户端的地址方式对吗?自我感觉在本机是对的,但是在服务器上就不对了,但是不知道怎么解决
路徑錯誤
string mainpath = Server.MapPath("../");
string savepath1 = mainpath + "mymyfiles\\" + ((int)(userid / 1000)).ToString() + "\\" + ((int)(userid / 100)).ToString() + "\\" + userid.ToString() + "\\" + "headpic1.jpg";保存路径是没有错误的。有错误的路径是客户端上传的路径,
var content="path="+tree_$("file").value;
dosavemymy("loadpic.aspx",content,"uploadpic");
Request.Form["path"]这个获得到的路径只是客户端机器的路径而已,到了服务端,就路径就不正确了
上传文件,只能通过表单提交的方式来实现。不可能通过纯js实现。可以用js来调用表单提交。
<form name="form1" target="一个宽和高都是0像素的iframe">
<input type="file" /><input type="submit" />
</form>
可以用脚本调用form1.submit();
能否再详细点啊,最好给个实例看看啊!!!
target="一个宽和高都是0像素的iframe"
这个干什么用的啊?怎么接收啊?
<form method="post" action="upload.aspx" target="iframe1">
<input type="file" id="a" /><input type="submit" />
</form>在upload.aspx里写:Request.Files[0].SaveAs("xxxx.....Response.Write("<script>alert('上传成功');</script>");
<%@ 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>这是我写的局部刷新上传文件 其他代码就不公开了`~