FileUpload从子域到主域的文件夹

时间:2014-03-20 14:51:01

标签: c# .net file-upload visual-studio-2013 code-behind

我尝试过荒谬的搜索,并且真的不知道要搜索什么。

我不是编程新手(图形设计师知道的太多),是否可以让子域名网站将文件上传到父网站。

目前的代码是:

if (FileUpload1.HasFile)
  {
    string webPath = "~/Uploads/Files/";

我试过了:

if (FileUpload1.HasFile)
  {
    string webPath = "http://domain.com/Uploads/Files/";

任何帮助和指示都将不胜感激,谢谢!

更新01

我也尝试过:

if (FileUpload1.HasFile)
  {
    string webPath = "../../httpdocs/Uploads/Files/";

出现以下错误:无法使用前导..退出顶级目录。

更新02

经过一番谷歌搜索后,我怀疑我两次打电话。所以我让这个工作,但我不完全确定它是多么安全。

if (FileUpload1.HasFile)
  {
    string sysPath = "C:/Inetpub/vhosts/domain.com/httpdocs/Uploads/Files/";

然后再次下载,有一个单独的文件 Download.aspx ,我必须按如下方式更改代码

response.TransmitFile("C:/Inetpub/vhosts/domain.com/httpdocs/Uploads/Files/" + filename);

3 个答案:

答案 0 :(得分:0)

它通常......上升到一个级别,所以../会上升到一个级别,获取路径的简单方法是在源代码模式下将某些东西从文件夹拖到ide中,它将创建一个带有正确路径的链接并抛弃了HTTP,你没有像图像一样加载资源,你只是说使用这个文件夹路径

答案 1 :(得分:0)

感谢@MikeH,我找到了解决方案。简而言之就是上传...

// USE TO SAVE TO SERVER C:
string sysPath = "C:/Uploads/ClientFiles/";

并下载......

// USE TO DOWNLOAD FROM SERVER C:
Response.TransmitFile(@"C:/Uploads/ClientFiles/" + filename);

不要忘记也设置文件夹权限。请参阅我的安全问题解决方案How Secure is string sysPath = "C:/Inetpub/vhosts/..."

答案 2 :(得分:0)

我这样做了:

BigDecimal sumContributionPercentage = new BigDecimal(0);                   
if (hasElements(mandateDetails)) {
  for (InstrumentMandateDetail mandate: mandateDetails) {
    if(!(VERFI_STATUS_CLOSED.equals(mandate.getMandateVerificationStatusType().getCode()) ||
         VERFI_STATUS_REJECTED.equals(mandate.getMandateVerificationStatusType().getCode()))) {
      sumContributionPercentage = sumContributionPercentage.add(mandate.getContributionPercentage());
    }       
  }
}