asp.net mvc-获取文件的完整路径(不用于上传!)



首先,如果有人已经回答了这个问题,但我在寻找答案,却找不到我特定问题的答案,我深表歉意。以下是我想要的:我想要获得文件的完整路径(本地文件路径),我不想使用我的asp.net上传文件,而是使用DropBox API,它需要本地文件的完整地址。在本地,它运行良好(除了FireFox,因为出于安全原因,他们不允许这样做)。但我可以通过internet explorer获得完整的路径,我使用IE 11只需使用以下命令:Form["Fileuploadcontrol"].tostring()。正如我所说,它适用于IE,但只有在我部署时才在本地,它不起作用,并采用本地服务器路径。

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

再一次:我不想上传文件,我想把完整的路径传递给Dropbox API

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

我建议您:

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

我敢肯定你误解了安全问题。拥有完整路径不仅仅是上传的安全问题,也是一个完整的javascript安全问题。如果我能得到文件的完整路径,我可以使用Ajax或任何其他方法上传它(http://mywebsite.com/pixel.gif?path=[encodedFilePath])。因此,在javascript中尝试在本地端获取文件名应该总是失败的。

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

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

我不确定这是否是最好的做法,但它暂时解决了我的问题。

最新更新