none
asp.net不使用控件进行文件上传 RRS feed

  • 问题

  • 已知上传的文件地址和上传的目标文件夹,有哥们做过相关的功能吗?

    用IO做需要获取相关文件权限,或者设置该文件权限的代码也可以,谢谢

    2013年11月20日 7:16

答案

  • 是webform.但是我这里不能用控件.因为我需要对包含地址列表的文件进行批量上传.

    你好:

    明确的告诉你,不可以!

    你电脑中的浏览器是客户端,ASP.NET应用程序是运行在服务端的。在HTTP协议式基于请求-相应模式的,服务端是不能够主动操作客户端的文件的,如果想操作客户端的文件,只有通过客户端主动使用上传控件将文件上传到服务端,然后服务端才能进行操作。

    如果想实现多文件批量上传,可以参考这篇文章: asp.net中实现文件批量,这是用基本的FileUpload控件组合使用来模拟多文件,但还是要一个一个添加文件。

    还可以使用这个Jquery控件:Uploadify, 这个应该比较靠近你的需求。

    还有很多其他的Flash或者Silverlight等做出来的控件都可以实现多文件批量上传的功能,但是总之一句话,必须要使用上传控件。web应用程序不可能通过客户端的磁盘文件列表来访问这些文件。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2013年11月21日 7:38
    版主

全部回复

  • 不太可能,因为安全性问题,不能直接操作本地文件

    http://feiyun0112.cnblogs.com/

    2013年11月20日 7:22
    版主
  • 所以我想知道需要用什么养的代码设置文件的权限
    2013年11月20日 7:24
  • 如果是WebForm,你使用FileUpLoad的Save方法

    总而言之,恐怕你需要一个和客户交互的接口(UI)告知用户上传文件的途径,以及保存呢到服务器的方法,这些功能已经在WinForm或者WebForm中实现了,所以还是用控件比较好。IO一般只是读写本地文件,貌似没有直接提供访问外部服务器的功能。


    ASP.NET Questions
    Other Discussions
    FreeRice Donate
    Issues to report

    2013年11月20日 7:24
    版主
  • 是webform.但是我这里不能用控件.因为我需要对包含地址列表的文件进行批量上传.
    2013年11月20日 7:27
  • 那你应该设法使用:

    1)拖拽一个按钮,双击之后先声明一个FileUpload类(后台)。

    2)使用System.IO.File类读取文件上传路径列表。

    3)用循环语句分别借助FileUpload.SaveAs方法上传。

    当然,最好给客户提供UI界面,你可以使用AJAX的FileUpLoad(查看:http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ajaxFileUpload/ajaxFileUpload.aspx),注意使用时候配置文件必须加上:

    Here's the Web.Config configuration that you must add:
    <system.web>
        ....
        <httpHandlers>
            <add verb="*" path="AjaxFileUploadHandler.axd"
              type="AjaxControlToolkit.AjaxFileUploadHandler, 
              AjaxControlToolkit"/>
        </httpHandlers>
    </system.web>
    For IIS7:
    <system.webServer>
        ....
        <validation validateIntegratedModeConfiguration="false" />
        <handlers>
            <add name="AjaxFileUploadHandler" verb="*" 
              path="AjaxFileUploadHandler.axd"
              type="AjaxControlToolkit.AjaxFileUploadHandler, 
              AjaxControlToolkit"/>
        </handlers>
    </system.webServer>

    ASP.NET Questions
    Other Discussions
    FreeRice Donate
    Issues to report

    2013年11月20日 7:34
    版主
  • 另外提示一声:MSDN的ASP.NET已经不再提供中文技术支持了,有ASP.NET的请直接点击我签名档下的“ASP.NET Questions”。

    ASP.NET Questions
    Other Discussions
    FreeRice Donate
    Issues to report

    2013年11月20日 7:36
    版主
  • 我的界面上是具体的文件路径选择
    2013年11月20日 7:45
  • 你可以参考我AJAX的FileUpLoad类,参考我上面第二个回复。

    ASP.NET Questions
    Other Discussions
    FreeRice Donate
    Issues to report

    2013年11月20日 9:05
    版主
  • 如果我用C#代码设置该文件的(读写)权限,然后后台读写操作,您觉得可以吗?
    2013年11月20日 9:43
  • ASP.NET不是客户端操作,你不可能让客户端去读写服务端的东西,一般只有服务端自己控制自己。

    ASP.NET Questions
    Other Discussions
    FreeRice Donate
    Issues to report

    2013年11月20日 9:46
    版主
  • 是webform.但是我这里不能用控件.因为我需要对包含地址列表的文件进行批量上传.

    你好:

    明确的告诉你,不可以!

    你电脑中的浏览器是客户端,ASP.NET应用程序是运行在服务端的。在HTTP协议式基于请求-相应模式的,服务端是不能够主动操作客户端的文件的,如果想操作客户端的文件,只有通过客户端主动使用上传控件将文件上传到服务端,然后服务端才能进行操作。

    如果想实现多文件批量上传,可以参考这篇文章: asp.net中实现文件批量,这是用基本的FileUpload控件组合使用来模拟多文件,但还是要一个一个添加文件。

    还可以使用这个Jquery控件:Uploadify, 这个应该比较靠近你的需求。

    还有很多其他的Flash或者Silverlight等做出来的控件都可以实现多文件批量上传的功能,但是总之一句话,必须要使用上传控件。web应用程序不可能通过客户端的磁盘文件列表来访问这些文件。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2013年11月21日 7:38
    版主