是有个FileUploadSaveAs(string
path)方法吧,参数path定义为你要保存文件的路径以及文件名的完整格式,在这里,你可以将文件名定义为你在页面里输的文件名,后台获取此值,拼接一下字符串即可。
试试这个方法,应该可行。
应用程序中经常需要允许用户把文件上传到web服务器 尽管在ASP NET X也可以完成该功能 但在ASP NET 中使用FileUpload控件会更简单 该控件让用户更容易地浏览和选择用于上传的文件 它包含一个浏览按钮和用于输入文件名的文本框 只要用户在文本框中输入了完全限定的文件名 无论是直接输入或通过浏览按钮选择 都可以调用FileUpload的SaveAs方法保存到磁盘上 除了从WebControl类继承的标准成员 FileUpload控件还公开了几个只读的属性 在表 和表 列出 表 FileUpload控件属性 名 称 类型 读 写 说 明 FileContent Stream × 返回一个指向上传文件的流对象 FileName string × 返回要上传文件的名称 不包含路径信息 HasFile Boolean × 如果是true 则表示该控件有文件要上传 PostedFile >
FileUpload控件,ID设置为fu1
//获取上传文件的大小(单位字节)
int size = fu1PostedFileContentLength;
//我们可以判断是否选择了文件
if (size > 0)
{
//获取文件名
//这里采用了系统中自带的一个方法,当然也可以采用拆分字符串的方法
string filename = SystemIOPathGetFileName(fu1PostedFileFileName);
//获取文件扩展名
string extend = SystemIOPathGetExtension(fu1PostedFileFileName);
//根据扩展名,我们可以判断是否是允许上传的文件的种类
if (extendToLower() != "jpg" || extendToLower() != "gif")
{
ResponseWrite("对不起,文件类型不对!");
return;
}
//获取上传到服务器上的文件夹的物理路径
string path = ServerMapPath("~/Upfiles/");
//这里我们可以判断需要上传的文件在服务器上是否有重名文件
//如果有,我们可以采用删除或者把这个文件改名
if (SystemIOFileExists(path + filename))
{
//删除
SystemIOFileDelete(path + filename);
}
//最后,上传文件,上传的方法有很多种,我们这里介绍其中一种简单的方法
fu1PostedFileSaveAs(path + filename);
ResponseWrite("上传成功!");
}
else
{
ResponseWrite("请选择上传文件");
}
fileupload 获取选中文件的绝对路径,实现参考如下:
protected void BtnUp_Click(object sender, EventArgs e)
{
if (FileUploadHasFile)
{
string savePath = ServerMapPath("~/upload/");//指定上传文件在服务器上的保存路径
//检查服务器上是否存在这个物理路径,如果不存在则创建
if (!SystemIODirectoryExists(savePath))
{
SystemIODirectoryCreateDirectory(savePath);
}
savePath = savePath + "\\" + FileUploadFileName;
FileUploadSaveAs(savePath);
LabMsgText = stringFormat("<a href='upload/{0}'>upload/{0}</a>", FileUploadFileName);
}
else
{
LabMsgText = "没有选择文件!";
}
}
[csharp] view plain copy
if (FileUpload1FileContentLength > 0)
{
string name = FileUpload1FileName;//获取上传的文件名
string ext = SystemIOPathGetExtension(name);// 获取文件的扩展名,比如 gif
string newname = DateTimeNowToString("yyyyMMddhhmmss") +ext;//利用时间生成新文件名后再加扩展名生成完整名字
string path = "~/load/" + newname;
FileUpload1 SaveAs (System Web >
你上传时不是通过获取过保存路径的绝对路径吗,比如这样:
String path = thisgetServletContext()getRealPath("/data/userfile/image"); //文件保存路径然后你只需要把的文件名再保存在数据库中,在显示页面直接使用相对路径来指向文件即可,“相对路径+文件名”,比如:
<br>照片:<img src=data/userfile/image/<jsp:getProperty name="loginedInform" property="pic" /> width=100 height=100></img>/// <summary>上传文件方法
/// 返回文件名
/// </summary>
/// <param name="myFileUpload">上传控件ID</param>
/// <param name="allowExtensions">允许上传的扩展文件名类型,如:string[] allowExtensions = { "doc", "xls", "ppt", "jpg", "gif" };</param>
/// <param name="maxLength">允许上传的最大大小,以M为单位</param>
/// <param name="savePath">保存文件的目录,注意是绝对路径,如:ServerMapPath("~/upload/");</param>
public static string Upload(FileUpload myFileUpload, string[] allowExtensions, int maxLength, string savePath)
{
// 文件格式是否允许上传
bool fileAllow = false;
//检查是否有文件案
if (myFileUploadHasFile)
{
// 检查文件大小, ContentLength获取的是字节,转成M的时候要除以2次1024
if (myFileUploadPostedFileContentLength / 1024 / 1024 >= maxLength)
{
throw new Exception("只能上传小于" + maxLength + "M的文件!");
}
//取得上传文件之扩展文件名,并转换成小写字母
string fileExtension = SystemIOPathGetExtension(myFileUploadFileName)ToLower();
string tmp = ""; // 存储允许上传的文件后缀名
//检查扩展文件名是否符合限定类型
for (int i = 0; i < allowExtensionsLength; i++)
{
tmp += i == allowExtensionsLength - 1 allowExtensions[i] : allowExtensions[i] + ",";
if (fileExtension == allowExtensions[i])
{
fileAllow = true;
}
}
if (fileAllow)
{
try
{
string datedir = DateTimeNowToString("yyyyMMdd");
if (!DirectoryExists(savePath + datedir))
{
DirectoryCreateDirectory(savePath + datedir);
}
string saveName = GuidNewGuid() + fileExtension;
string path = savePath + datedir + "/" + saveName;
//存储文件到文件夹
myFileUploadSaveAs(path);
return datedir + "/" + saveName;
}
catch (Exception ex)
{
throw new Exception(exMessage);
}
}
else
{
throw new Exception("文件格式不符,可以上传的文件格式为:" + tmp);
}
}
else
{
throw new Exception("请选择要上传的文件!");
}
}
调用:
try
{
string proimg = NiunanShopUtilityToolUpload(fuimg, new string[] { "jpg", "gif", "png" }, 3, ServerMapPath("~/upload/"));
}
catch (Exception ex)
{
ResponseWrite(exMessage);
}
以上就是关于用fileupload控件上传文件并自定义文件名全部的内容,包括:用fileupload控件上传文件并自定义文件名、ASP.NET 2.0高级控件之FileUpload控件、asp.net 中怎么取FileUpload 的真实路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)