获取文件的完整路径(不用于上传!)

时间:2014-04-21 19:26:19

标签: asp.net-mvc web-deployment

首先,如果有人已经回答了这个问题,我很抱歉,但我找了一个答案,而且找不到我的具体问题。 这就是我想要的:我想获得文件的完整路径(本地文件路径),我不想使用我的asp.net上传文件,而是使用DropBox API,它需要本地文件的完整路径。在本地它工作正常(除了FireFox,因为出于安全原因,他们不允许这样做)。但我能够通过Internet Explorer找到完整的路径,我只使用它来使用IE 11:Form [" Fileuploadcontrol"] .tostring()。 正如我所说它适用于IE,但只在本地部署时,它不起作用并采用本地服务器路径。

也许我没有在这里使用正确的控件,但我只需要一个文件浏览器,我可以获得完整的文件路径。

再一次:我不想上传文件,我想通过Dropbox API的完整路径

此外,我的浏览器存在安全问题。我可以手动更改我的设置,让我的FF和IE绕过安全屏障,让我得到完整的路径。相反,我正在部署我的网站,这意味着我可以为每个使用该网站的用户做到这一点。

3 个答案:

答案 0 :(得分:1)

我建议你的是:

1)在没有完整文件路径的服务器上上传文件(因为传递文件路径可能是安全问题)。
2)然后将文件保存在服务器的临时文件夹中(可能是temp)。
3)使用服务器上的临时位置路径将文件上传到Dropbox。
4)如果不再需要,从临时文件夹中删除文件

答案 1 :(得分:0)

我很确定你误解了安全问题。拥有完整路径不仅仅是上传安全问题,而且还是一个完整的 javascript 安全问题。如果我可以获得文件的完整路径,我可以使用Ajax或任何方式(http://mywebsite.com/pixel.gif?path=[encodedFilePath])上传它,除了上传文件。因此,尝试在本地获取文件名应始终在javascript中失败。

您的 only 选项是让客户更改安全设置,或者不使用javascript。

答案 2 :(得分:0)

我采取了不同的路线,这是我的解决方法: - 我将文件暂时上传到我的服务器(我创建了一个名为Uploads的文件夹) - 成功上传后,我可以获取文件路径(我服务器上的那个)servername \ uploads \ filename - 然后我将此路径传递给dropbox API函数dropBoxStorage.UploadFile(srcFile,remoteDirName); - 成功上传到DropBox后,我从服务器上删除了临时文件。

我不确定这是否是最好的事情,但它现在解决了我的问题。

相关问题