C# 将文件保存到IIS服务器上托管的文件夹
我正在做一个项目。现在我想把上传的图片保存到-C# 将文件保存到IIS服务器上托管的文件夹,c#,asp.net,iis,file-upload,C#,Asp.net,Iis,File Upload,我正在做一个项目。现在我想把上传的图片保存到- (http://myipaddress//DinegenieApi//category). 此文件夹位于C--inetpub-->DinegenieApi-->类别中。 我收到错误,URI格式不受支持。但当我在浏览器中键入此url时,我可以访问此文件夹 实际上,我正在检查类别文件夹是否已经存在,然后直接保存图像,如果不存在,则首先创建一个名为category的文件夹,然后将图像保存到其中。 以下是我正在使用的文件上载代码: protected
(http://myipaddress//DinegenieApi//category).
此文件夹位于C--inetpub-->DinegenieApi-->类别中。
我收到错误,URI格式不受支持。但当我在浏览器中键入此url时,我可以访问此文件夹
实际上,我正在检查类别文件夹是否已经存在,然后直接保存图像,如果不存在,则首先创建一个名为category的文件夹,然后将图像保存到其中。
以下是我正在使用的文件上载代码:
protected Tuple<string, string, string> fileupload(FileUpload fileupload, string foldername)
{
Tuple<string, string, string> imgdetails;
string pathreturn = "";
string fileextension = (Path.GetExtension(fileupload.FileName)).ToLower();
string name = "-" + fileupload.PostedFile.FileName;
string filename = DateTime.Now.ToString("dd-MM-yyyy HH:mm:ss").Replace(":", "-") + name;
if (fileextension == ".jpeg" || fileextension == ".jpg" || fileextension == ".gif" || fileextension == ".png")
{
if (fileupload.PostedFile.ContentLength < 512000)
{
//string a = Server.MapPath("~/Filestore/") + foldername;
//string ipaddress=getipaddress();
string ipaddress = "http://172.16.0.18:8080";
string a = ipaddress + "//DinegenieApi//" + foldername;
Uri test = new Uri(a);
DirectoryInfo mydir = new DirectoryInfo(a);
if (Directory.Exists(mydir.ToString()))
{
fileupload.SaveAs(a + "\\" + filename);
}
else
{
Directory.CreateDirectory(a);
fileupload.SaveAs(a + filename);
}
pathreturn =a;
lblmsg.Text = "";
imgdetails = new Tuple<string, string, string>(pathreturn, filename, lblmsg.Text);
}
else
{
lblmsg.Text = "File size should be less than 500kb";
lblmsg.Visible = true;
imgdetails = new Tuple<string, string, string>("", "", lblmsg.Text);
}
}
else
{
lblmsg.Text = "File type should be jpeg,png,gif";
lblmsg.Visible = true;
imgdetails = new Tuple<string, string, string>("", "", lblmsg.Text);
}
return imgdetails;
}
受保护的元组文件上载(文件上载文件上载,字符串foldername)
{
元组细节;
字符串pathreturn=“”;
字符串fileextension=(Path.GetExtension(fileupload.FileName)).ToLower();
string name=“-”+fileupload.PostedFile.FileName;
字符串文件名=DateTime.Now.ToString(“dd-MM-yyy-HH:MM:ss”)。替换(“:”,“-”)和名称;
如果(文件扩展=“.jpeg”| |文件扩展=”.jpg“| |文件扩展=”.gif“| |文件扩展=”.png”)
{
if(fileupload.PostedFile.ContentLength<512000)
{
//字符串a=Server.MapPath(“~/Filestore/”)+foldername;
//字符串ipaddress=getipaddress();
字符串ipaddress=”http://172.16.0.18:8080";
字符串a=ipaddress+“//DineGenieAppi//”+foldername;
Uri测试=新Uri(a);
DirectoryInfo mydir=新的DirectoryInfo(a);
if(Directory.Exists(mydir.ToString()))
{
fileupload.SaveAs(一个+“\\”+文件名);
}
其他的
{
CreateDirectory(a);
fileupload.SaveAs(a+文件名);
}
路径返回=a;
lblmsg.Text=“”;
imgdetails=新元组(路径返回,文件名,lblmsg.Text);
}
其他的
{
lblmsg.Text=“文件大小应小于500kb”;
lblmsg.Visible=true;
imgdetails=新元组(“,”,lblmsg.Text);
}
}
其他的
{
lblmsg.Text=“文件类型应为jpeg、png、gif”;
lblmsg.Visible=true;
imgdetails=新元组(“,”,lblmsg.Text);
}
返回IMG详细信息;
}
为什么要用“/”作为URL?将其更改为“http://myipaddress/DinegenieApi/category”,然后重试。这与代码中显示的内容相同,但在访问它时会变得与您提到的相同。您正在此处添加“//”ipaddress+”//DinegenieApi//“+foldername;”,但我建议您改用Server.MapPath。并使用Path.Combine始终连接路径。检查此链接