c#如何设置上传文件路径

lilyjingzi 2009-03-27 05:10:51
我现有项目的上传文件都保存在程序根目录下的upfile文件夹里了,这样做有很多问题,比如安全,比如影响速度,当然,最直接了当的影响是每次备份的时候都要备份量很大的upfile文件夹

而我现在想做将upfile文件夹设在服务器的独立的一个磁盘里:比如,程序在D盘,而上传的数据都在E盘的upfile文件夹下,这要怎么实现?

怎么设置这里的路径?
...全文
1342 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
A啦Dbit 2009-09-09
  • 打赏
  • 举报
回复
Server.MapPath("upfile/");
这个可以!
lilyjingzi 2009-04-03
  • 打赏
  • 举报
回复
结贴吧
虽然每次都是无满意答案,不过,每次还是都要满意结贴啊。
youqi6597480 2009-04-01
  • 打赏
  • 举报
回复
先设置路径
然后用SaveAs()保存
lilyjingzi 2009-04-01
  • 打赏
  • 举报
回复
上来说一声:
用@"\\127.0.0.1\upfile\test"这样的路径可以访问,给aspnet或者network service用户足够的权限也可以进行读写操作,其中,将upfile文件夹设置成虚拟目录

在本地上是可行的,至于在上传至服务器上是否可行有待于测试
wk122348545 2009-03-31
  • 打赏
  • 举报
回复
可以为上传目录指定一个虚拟目录看看可行不
llsen 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 lilyjingzi 的回复:]
引用 14 楼 zhamx 的回复:
//每一个用户指定一个专用目录
private FileAttr SaveFile(HttpPostedFile postFile,string strUserID)
{
FileAttr fileAttr = new FileAttr();
//RootDir
if (!System.IO.Directory.Exists(this.SaveFileRoot))
System.IO.Directory.CreateDirectory(this.SaveFileRoot);

#region Info

string strFileName = postFile.…
[/Quote]

if (!System.IO.Directory.Exists("E\:upfile")) 
System.IO.Directory.CreateDirectory(E\:upfile);
lilyjingzi 2009-03-31
  • 打赏
  • 举报
回复
我用类似这样的代码测试
if (!System.IO.Directory.Exists("http://127.0.0.1/upfile"))

提示“不支持URI格式”,该怎么改?
wk122348545 2009-03-31
  • 打赏
  • 举报
回复
网站目录和上传的文件目录分开设置
上传的时候相当于传的是另外一个网址
我原来好像见过这样的设置的
lilyjingzi 2009-03-31
  • 打赏
  • 举报
回复
回wk122348545:指定虚拟目录不可行
回llsen:路径应该为虚拟路径
luluyy 2009-03-30
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090330/11/658de515-135e-4b24-b554-8fcd08dd7404.html
lilyjingzi 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 zhamx 的回复:]
//每一个用户指定一个专用目录
private FileAttr SaveFile(HttpPostedFile postFile,string strUserID)
{
FileAttr fileAttr = new FileAttr();
//RootDir
if (!System.IO.Directory.Exists(this.SaveFileRoot))
System.IO.Directory.CreateDirectory(this.SaveFileRoot);

#region Info

string strFileName = postFile.FileName;
//要存…
[/Quote]
我要的就是这个SaveFileRoot该怎么设置,我的程序在D盘,但我想将文件上传至E盘,该如何获取或者设置这里的路径呢?

我有一个想法,如果在E盘建一个upfile文件夹,然后在iis设置虚拟目录,通过http://webservername/upfile这样可以访问吗?
有人试过吗?
sharp_future 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 zhamx 的回复:]
//每一个用户指定一个专用目录
private FileAttr SaveFile(HttpPostedFile postFile,string strUserID)
{
FileAttr fileAttr = new FileAttr();
//RootDir
if (!System.IO.Directory.Exists(this.SaveFileRoot))
System.IO.Directory.CreateDirectory(this.SaveFileRoot);

#region Info

string strFileName = postFile.FileName;
//要存…
[/Quote]
UP
成都慢生活 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lilyjingzi 的回复:]
引用 12 楼 cryeyes 的回复:

Use appSetting in app.config save the setting value

在app.config中配置,怎么配置?总不能设成E:\upfile\……或者是http://webservername/……
[/Quote]

为什么不能是E:\upfile\?就是在这里写绝对路径的。让客户写。他机器什么配置就写什么。你一开始给个缺省值就可以了
zhamx 2009-03-30
  • 打赏
  • 举报
回复
//每一个用户指定一个专用目录
private FileAttr SaveFile(HttpPostedFile postFile,string strUserID)
{
FileAttr fileAttr = new FileAttr();
//RootDir
if (!System.IO.Directory.Exists(this.SaveFileRoot))
System.IO.Directory.CreateDirectory(this.SaveFileRoot);

#region Info

string strFileName = postFile.FileName;
//要存储的文件全名称 路径+文件名 ==== SaveFileRoot + strUserID + FileName
string strSaveFileFullPath = this.SaveFileRoot + strUserID + "\\";
if (!System.IO.Directory.Exists(strSaveFileFullPath))
System.IO.Directory.CreateDirectory(strSaveFileFullPath);

//
string strFileSortFileName = postFile.FileName;
strFileSortFileName = strFileSortFileName.Substring(strFileSortFileName.LastIndexOf('\\')+1);
strSaveFileFullPath += strFileSortFileName;

postFile.SaveAs(strSaveFileFullPath);
int dFileSize = postFile.ContentLength;

fileAttr.FullName = strSaveFileFullPath;
fileAttr.Name = strFileSortFileName;
fileAttr.FileSize = dFileSize;
#endregion

return fileAttr;
}
lilyjingzi 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 cryeyes 的回复:]
Use appSetting in app.config save the setting value
[/Quote]
在app.config中配置,怎么配置?总不能设成E:\upfile\……或者是http://webservername/……
成都慢生活 2009-03-30
  • 打赏
  • 举报
回复
Use appSetting in app.config save the setting value
马老虎 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jijunwu 的回复:]
Server.MapPath();
[/Quote]
Server.MapPath("~upfile/");
成都慢生活 2009-03-30
  • 打赏
  • 举报
回复
手动配置,否则你如何能确保服务器上有e盘?
都是把数据文件放在程序下也是这原因
outou 2009-03-30
  • 打赏
  • 举报
回复
下面的代码试试。
来自http://bingning.net/VB/SOURCE/internet/ftpwebclient.html

[C#]

// WebClient对象作成
System.Net.WebClient wc = new System.Net.WebClient();
//指定用户名和密码
wc.Credentials = new System.Net.NetworkCredential("username", "password");
//向FTP服务器上传文件
wc.UploadFile("ftp://localhost/test.txt", @"C:\test.txt");
//向FTP服务器上传文件
wc.Dispose();

lilyjingzi 2009-03-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jijunwu 的回复:]
Server.MapPath();
[/Quote]
这个只能获得根程序的地址吧,比如这里的D:\……,我是想获取E盘的路径
加载更多回复(7)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧