asp.net 不用FileUpload上传文件

IT流渊 2010-08-04 03:04:07
现在遇到一问题,我已经知道了我需要上传的文件路径 比如:
C:\Documents and Settings\Administrator\桌面\Image\热度趋势.png
需要上传这个文件 该怎么操作下去呢?

看来看去 都要用到FileUpload 才行,不知道 还有没有其他的方法!!!!
...全文
387 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
byshome 2010-08-05
  • 打赏
  • 举报
回复
把FileUpload放到一个asp.net文件中
然后用ifream显示这个文件,在页面中调用子页面中文件,直接设置FileUpload的值,然后模拟点击完成上传
google就是这么干的
sywcf 2010-08-05
  • 打赏
  • 举报
回复
学习一下
cuike519 2010-08-04
  • 打赏
  • 举报
回复
没有别的方法。。。(至少在基于HTML页面的没有)
flyerwing 2010-08-04
  • 打赏
  • 举报
回复
写个浏览器插件算了.
owenxin26 2010-08-04
  • 打赏
  • 举报
回复
本地调试的时候应该可以,但是部署到网站上以后由于权限的原因貌似不行的吧,那样岂不是网站想获得客户的任何文件都轻而易举了。。。从安全性上考虑也是不可能的事情
wuyq11 2010-08-04
  • 打赏
  • 举报
回复
ftpwebrequest
webclient都可实现上传
WebClient wc = new WebClient();
wc.UploadFile(path, current);
IT流渊 2010-08-04
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 hrabeyond 的回复:]
C# code

FileStream fs = File.Open("C:\\Documents and Settings\\Administrator\\桌面\\Image\\热度趋势.png
",FileMode.Open);
WebClient wc = new WebClient();
wc.OpenWriteAsync(new Uri("xxxx.ashx"), "POST"……
[/Quote]
感谢hrabeyond ,给我提示
改成下面的就可以上传了:

WebClient wc = new WebClient();
wc.UploadFile("http://localhost:4953/AshxAllEvent/UpFileImage.ashx", "POST", result2[0].ToString());
//result2[0]文本本地绝对路径
//即C:\\Documents and Settings\\Administrator\\桌面\\Image\\热度趋势.png



UpFileImage.ashx:

try
{

HttpFileCollection postedFile = context.Request.Files;
if (postedFile.Count>0)
{
string savepath = "";
string tempPath = "";
tempPath = System.Web.HttpContext.Current.Server.MapPath("..\\Temp\\");//System.Configuration.ConfigurationManager.AppSettings["FolderPath"];
savepath = tempPath; //context.Server.MapPath(tempPath);
string filename = postedFile[0].FileName;
string sExtension = filename.Substring(filename.LastIndexOf('.'));
if (!Directory.Exists(savepath))
Directory.CreateDirectory(savepath);

string sNewFileName = filename.Substring(0,filename.IndexOf("."));
postedFile[0].SaveAs(savepath + @"\" + sNewFileName + sExtension);
context.Response.Write(tempPath + sNewFileName + sExtension);
context.Response.StatusCode = 200;
}

}
catch (Exception ex)
{
context.Response.Write("Error: " + ex.Message);
}
脾气不坏 2010-08-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 roy99 的回复:]

除了activeX之外,
如果你想不通过用户去点选择框来上传文件 那是不可能的事
[/Quote]
+1
手抓宝 2010-08-04
  • 打赏
  • 举报
回复

FileStream fs = File.Open("C:\\Documents and Settings\\Administrator\\桌面\\Image\\热度趋势.png
",FileMode.Open);
WebClient wc = new WebClient();
wc.OpenWriteAsync(new Uri("xxxx.ashx"), "POST", fs);


没试,你试试吧
porschev 2010-08-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 w3031213101 的回复:]
“FileUpload有啥问题?” 没有问题
只是这个我获取的路径是在一字符串中过滤出来的
而不是从FileUpload 得到的 ,这样也能用FileUpload 上传吗????
[/Quote]

可以。。。
IT流渊 2010-08-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hrabeyond 的回复:]
引用 6 楼 wangfeizjk 的回复:
上传无非就是登陆的用户名,密码。和你上传的路径,
现在用户名,密码你应该有了,就是把你得到的路径赋给上传的控件


还需要登录名和密码?学习了。。
[/Quote]
这个他说的 应该是FTP的模式上传
Roy99 2010-08-04
  • 打赏
  • 举报
回复
除了activeX之外,
如果你想不通过用户去点选择框来上传文件 那是不可能的事
Roy99 2010-08-04
  • 打赏
  • 举报
回复
在B/S里 你就算知道客户端需要上传的文件路径也要手动去点选择文件才可以上传的。。。
因为这里涉及到安全设计的思想在里面。(要不然你电脑上的文件随便给人在你不知情的情况下上传到服务端那不是杯具了)

如果非要那么做 除非是用activeX才有这么大的权限
手抓宝 2010-08-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wangfeizjk 的回复:]
上传无非就是登陆的用户名,密码。和你上传的路径,
现在用户名,密码你应该有了,就是把你得到的路径赋给上传的控件
[/Quote]

还需要登录名和密码?学习了。。
lsq667 2010-08-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ihandler 的回复:]
FTP
用代码也可以实现
FileUpload有啥问题?
[/Quote]同意
wangfeizjk 2010-08-04
  • 打赏
  • 举报
回复
上传无非就是登陆的用户名,密码。和你上传的路径,
现在用户名,密码你应该有了,就是把你得到的路径赋给上传的控件
IT流渊 2010-08-04
  • 打赏
  • 举报
回复
而且 我根本没用到FileUpload的
IT流渊 2010-08-04
  • 打赏
  • 举报
回复
“FileUpload有啥问题?” 没有问题
只是这个我获取的路径是在一字符串中过滤出来的
而不是从FileUpload 得到的 ,这样也能用FileUpload 上传吗????
IHandler 2010-08-04
  • 打赏
  • 举报
回复
FTP
用代码也可以实现
FileUpload有啥问题?
IT流渊 2010-08-04
  • 打赏
  • 举报
回复
最好不要用到插件了 因为文件路径 我已经知道了
加载更多回复(1)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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