0

嘿,我的项目目录是这样的:

project 
  codes
    fileupload(ashx)
  scripts
  image
  web-pages
    home(aspx)
    about(aspx)
    FileUpload(aspx)

我在我的 FileUpload(aspx) 中使用这个 ajax 函数:

<script>

function ajaxFileUpload() {
    $.ajaxFileUpload({
        url: "/FileUpload.ashx", // The problem is here
        secureuri: false,
        fileElementId: 'fileToUpload',
        dataType: 'json',
        success: function (data, status) {
            if (typeof (data.error) != 'undefined') {
                if (data.error != '') {
                    alert(data.error);
                } else {
                    ShowUploadedFiles(data.upfile, filename);
                    $('#fileToUpload').val("");
                }
            }
        },
        error: function (data, status, e) {
            alert(e);
        }
    });
}
</script>

如何从此函数调用我的处理程序(fileupload.ashx):我尝试了很多方法:

1 - url: "../codes/FileUpload.ashx", Not working 
2 - url: "~/codes/FileUpload.ashx", Not working
3 - url: "./codes/FileUpload.ashx", Not working 
4 - url: "/codes/FileUpload.ashx", Not working
5 - url: "/project/codes/FileUpload.ashx", not working 
6 - url: "codes/FileUpload.ashx", not working 
7 - url: "/FileUpload.ashx", not working 

PS:当我更改 FileUpload.aspx 的目录并将其放在项目的主文件夹中时...它将与此 url 完美配合:codes/FileUpload.ashx

那么有什么想法吗?

4

1 回答 1

0

如果您在 IIS 中托管,并且您的 Web 应用程序的根设置为 /project/web-pages/ 目录,您将需要在该目录中包含 Web 应用程序的所有其他目录。IE:

如果工作 URL 结构使得http://your.url/home.aspx正常工作,那么您的项目将需要如下结构:

/project/web-pages/
/project/web-pages/image
/project/web-pages/scripts
/project/web-pages/codes

否则 /project/codes 中的文件将不会由 IIS 提供服务。除非您为 /codes 设置单独的 IIS 虚拟目录。

如果 IIS 配置为使您的 URL 看起来像http://your.url/web-pages/home.aspx,那么 /codes 目录应该可以使用 /codes/fileupload.ashx 相对路径访问,假设您已配置 IIS网站的根目录为 /project/ 目录。

于 2013-09-20T22:29:04.450 回答