在c#中(c/s)如何实现将上传的文件保存到指定的文件夹
3个回答
展开全部
参考一下我写的上传的事件,我把保存的路径配置在web.cofig里面了,(需要注意的是超过一定的大小4M的话就会发生前台的异常,而且这个异常后台没办法捕获,网上有个家伙写的捕获的异常的方法我试了,根本没有用):
protected void btnSave_Click(object sender, System.EventArgs e)
{
HttpPostedFile postedFile = fileUploadInput.PostedFile;
String userType = this.ddlUserType.SelectedValue;
if (postedFile!=null)
{
//判断文件是否小于10Mb
if (postedFile.ContentLength < 10485760)
{
try
{
//上传文件并指定上传目录的路径
String serverPath = System.Configuration.ConfigurationSettings.AppSettings["ReportPath"];
if(serverPath!=null)
{
String fileFullName = fileUploadInput.PostedFile.FileName;
String fileName = Path.GetFileName(fileFullName);
if(getUserManager().isFileNameExist(fileName))
{
lblMsg.Text = "Upload Failed:File with same name already exists!";
}
else
{
if (!Directory.Exists(serverPath))
{
Directory.CreateDirectory(serverPath);
}
postedFile.SaveAs(serverPath+fileName);
getUserManager().saveFileToDataBase(fileName,userType);
lblMsg.Text = "Upload Successfully!";
}
}
else
{
lblMsg.Text = "Upload Failed: Path not found!";
}
/*
* FileUpLoad1.PostedFile.SaveAs(Server.MapPath("~/Files/")+ FileUpLoad1.FileName);
* 注意->这里为什么不是:FileUpLoad1.PostedFile.FileName
* 而是:FileUpLoad1.FileName?
* 前者是获得客户端完整限定(客户端完整路径)名称
* 后者FileUpLoad1.FileName只获得文件名.
*/
//当然上传语句也可以这样写(貌似废话):
//FileUpLoad1.SaveAs(@"D:\"+FileUpLoad1.FileName);
}
catch (Exception ex)
{
lblMsg.Text = "Upload Failed,Exception Occurs:" + ex.Message;
}
}
else
{
lblMsg.Text = "Upload Failed:The size of the file can not exceeded 10MB!";
}
}
else
{
lblMsg.Text = "File not seleced!";
}
}
protected void btnSave_Click(object sender, System.EventArgs e)
{
HttpPostedFile postedFile = fileUploadInput.PostedFile;
String userType = this.ddlUserType.SelectedValue;
if (postedFile!=null)
{
//判断文件是否小于10Mb
if (postedFile.ContentLength < 10485760)
{
try
{
//上传文件并指定上传目录的路径
String serverPath = System.Configuration.ConfigurationSettings.AppSettings["ReportPath"];
if(serverPath!=null)
{
String fileFullName = fileUploadInput.PostedFile.FileName;
String fileName = Path.GetFileName(fileFullName);
if(getUserManager().isFileNameExist(fileName))
{
lblMsg.Text = "Upload Failed:File with same name already exists!";
}
else
{
if (!Directory.Exists(serverPath))
{
Directory.CreateDirectory(serverPath);
}
postedFile.SaveAs(serverPath+fileName);
getUserManager().saveFileToDataBase(fileName,userType);
lblMsg.Text = "Upload Successfully!";
}
}
else
{
lblMsg.Text = "Upload Failed: Path not found!";
}
/*
* FileUpLoad1.PostedFile.SaveAs(Server.MapPath("~/Files/")+ FileUpLoad1.FileName);
* 注意->这里为什么不是:FileUpLoad1.PostedFile.FileName
* 而是:FileUpLoad1.FileName?
* 前者是获得客户端完整限定(客户端完整路径)名称
* 后者FileUpLoad1.FileName只获得文件名.
*/
//当然上传语句也可以这样写(貌似废话):
//FileUpLoad1.SaveAs(@"D:\"+FileUpLoad1.FileName);
}
catch (Exception ex)
{
lblMsg.Text = "Upload Failed,Exception Occurs:" + ex.Message;
}
}
else
{
lblMsg.Text = "Upload Failed:The size of the file can not exceeded 10MB!";
}
}
else
{
lblMsg.Text = "File not seleced!";
}
}
展开全部
using(FileStream fs=File.Create(文件路径))
{
fs.Write(byte数组,0,数组长度);
fs.Close();
}
不明白的参考MSDN中System.IO.File类的说明。
{
fs.Write(byte数组,0,数组长度);
fs.Close();
}
不明白的参考MSDN中System.IO.File类的说明。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
找个c#无组件上传类,带demo的 然后修改下就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询