我发现我的问题点,我认为也许只是因为我运行在本地主机上的应用程序,但我不觉得我可以放心地部署到下一层进行测试。获取VB.NET Relative Upload路径到正在运行的应用程序?
我有一个Telerik RadAsyncUpload控件,它有一个TargetFolder="\Upload"
,并且假设它一直会使用应用程序中的\ Upload文件夹。
有没有办法来强制路径是内的应用程序?
lsFullFileName = HttpContext.Current.Server.MapPath(fuUploadFile.TargetFolder)
+ "\" + Path.GetFileName(lsFileName)
这是在VB.net。该文件是在结束了“C:\上传”(我创建看看发生了什么事情),但该文件应在App_Data文件的临时位置移动到 “C:\的applicationName \的applicationName \上传”
ASPX
<telerik:RadAsyncUpload
runat="server"
ID="fuUploadFile"
MaxFileSize="262144000"
OnClientFileUploaded="OnClientFileUploaded"
InputSize="50"
TargetFolder="\Upload"
AllowedFileExtensions=".wav,.mp3,.mpeg,.mpg,.wmv,.avi,.mp4">
</telerik:RadAsyncUpload>
感谢。
这通常是一个非常糟糕的主意,让用户上传文件的根目录中。您应该保持原样(在您的应用程序之外)并创建一个处理程序来恢复文件。这样你就可以安全地访问你的文件和更多的东西(比如文件被存档时的日志记录等),并且你确定没有人会从你的服务器上执行远程起源的任何东西...... – 2014-08-29 13:31:38
@Bartdude这是什么“非常糟糕的想法“来自?如果应用程序内的“上传”文件夹的权限设置正确,则不会有问题,即没有人拥有执行权限。我觉得更关心的是服务帐户有能力在其域外创建文件夹。但是,如果上传文件夹位于公共站点之外,则不必担心,但不应将其保留在系统驱动器根目录上的随机文件夹中。也许将它移动到Web根目录“C:\ applicationname \ Upload”的上一级。 – Tim 2014-09-02 13:28:00
@Tim>显然,它不应该是一个随机的文件夹,但如果我没有记错的HTML或JavaScript文件不会被“执行”权限会受到影响,这意味着有人可以“托管”恶意的JavaScript到您的域名和通过它可以访问很多(用户)数据。事实是,即使您还应该清理输入内容,将正确的访问权限放在文件夹等等上,您仍然可以将用户上传的文件存储在webroot之外,这是已知的最佳做法......您永远不知道会发生什么,更好的是要小心。 – 2014-09-05 11:54:06