在文件夹中上传/保存文件而不使用文件上传控制文件路径通过查询字符串发送,如下所示
JS代码
var xmlHttp1 = new XMLHttpRequest();
var URL = "../codePages/codePage1.aspx?imgName=http://maps.googleapis.com/maps/api/staticmap?center=34.08326024943277,74.79841209948063&zoom=21&size=550x450&maptype=roadmap&sensor=true";
xmlHttp1.open("POST", URL, true);
xmlHttp1.send();
xmlHttp1.onreadystatechange = function () {
if (xmlHttp1.readyState == 4 && xmlHttp1.status == 200) {
}
}
C#代码
string fileName = Path.GetFileName(Request.QueryString["imgName"].ToString());
string location = Server.MapPath("~/saveImages/") + fileName;
Request.Files[0].SaveAs(location);
答案 0 :(得分:1)
替换它:
Server.MapPath("~/saveImages/") + fileName
有了这个:
Path.Combine(Server.MapPath("~/saveImages/") , fileName);
答案 1 :(得分:1)
查询字符串包含文件的路径名而不是文件内容。您必须阅读该文件,然后将其内容保存到该位置。
类似的东西:
string fileName = Path.GetFileName(Request.QueryString["imgName"].ToString());
string location = Path.Combine(Server.MapPath("~/saveImages/") , fileName);
string readText = File.ReadAllText(Request.QueryString["imgName"].ToString());
File.WriteAllText(location, readText);
请确保使用File.Exists(path)
或类似内容进行正确的错误/异常处理。我没有测试过这段代码,但我认为这应该可行。
另请注意,
Request.Files[0]
包含使用文件上传控件上传的文件数据。
您可以使用WebRequest
之类的内容来读取网址中的数据。类似于:
var webRequest = WebRequest.Create(@"http://yourUrl");
using (var response = webRequest.GetResponse())
using(var content = response.GetResponseStream())
using(var reader = new StreamReader(content)){
var strContent = reader.ReadToEnd();
}
请以此为出发点,而不是复制粘贴解决方案。