2

下面是我编写的用于下载文件的代码,现在我需要将文件下载到客户端系统中的特定位置。我将通过用户输入获取路径。我知道弄乱客户端系统不好,但我不得不这样做

        //setting the content type of response
        response.setContentType("application/"+strFileType);

        response.setHeader("content-disposition","attachment; filename="+strFileName+"."+strFileType);

        //creating a file input stream object
         InputStream input = blob.getBinaryStream();

         //declaring a variable
         int i;
         while((i=input.read())!=-1)
         {
             //writing output
             printWriter.write(i);
         }

         //closing the streams
         input.close();
         printWriter.close();
4

3 回答 3

4

我知道弄乱客户端系统不好,但我不得不这样做....

好消息(从用户的角度来看!)是你做不到。即使你“不得不”。专门构建了一个 Web 浏览器来阻止您(服务器端)做这种事情。

唯一的办法是在受信任的浏览器插件或小程序中实现功能,或者用户必须专门安装在他/她的机器上。


...在哪里使用从用户那里获取的路径,我正在像 ftp 一样对此进行编程,但服务器端是一个数据库

问题是浏览器无法判断您这样做是出于合法目的……还是试图破坏系统/用户文件、植入恶意软件或任何其他可能对用户有害的事情。

它不会冒险让你这样做,这是一件好事。

于 2012-11-17T05:29:44.763 回答
1

这需要更新浏览器的文件下载位置,[注意:如果我们更新此文件,所有文件都将下载到该路径]

请参考以下链接,您可能会明白:

如何更改Firefox中的下载文件夹destination?

如何在 Mac 上的 Safari、Firefox 等浏览器中以编程方式检查下载文件夹的位置?

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/6ff178a2-5131-43d4-b4c0-efb4a2112e95

于 2012-11-17T05:25:38.837 回答
0

如果您在 Intranet 中并且可以信任服务器,请使用具有授予访问权限的小程序或类似技术……但这又一次真的很糟糕。

于 2013-05-08T06:10:53.840 回答