首页 > 解决方案 > ASPupload 'if Not File Is Nothing' 总是返回 false

问题描述

使用Persits ASPupload 组件上传和处理文件(经典 ASP)。

该文件正在通过 jQuery ajax 表单上传。

我遇到了一个奇怪的情况,即使文件已被最确定地上传(我可以在服务器上看到它) ,通常的测试也if Not File Is Nothing Then总是返回。false

这是我的 jQuery 代码:

    var hiddenSignature = $("#hiddenSignature").val();

    var formData = new FormData();

    formData.append('closingPic', $('#closingPic')[0].files[0]);
    formData.append('hiddenSignature',hiddenSignature);

    $.ajax({ 

        url: "ajax_tickets_file.asp?action=cost", 
        type: "POST", 
        enctype: 'multipart/form-data',
        contentType: false,
        processData: false,     
        data: formData, 

        beforeSend: function() {
            ...
        },
        success: function(msg) { 
            ...
       }
    });

这是ajax_tickets_file.asp上的服务器端代码:

   Set objUpload = Server.CreateObject("Persits.Upload.1")

    With objUpload

       .CodePage = 65001
       .OverwriteFiles = False

       Set file = .Files("closingPic")

       .SaveVirtual defaultUploadsFolder  // a file is indeed saved on the server, at the correct location 
       response.write " saved  "

       if Not file Is Nothing Then
            response.write “we have a file” 
        else
             response.write "no file"   //  this is what I get
        end if

因此,如前所述,我打印了“无文件”。

这怎么可能发生?

谢谢

标签: asp-classic

解决方案


H/T 感谢 Persits ASPupload 的所有者帮助我

代码应该是:

   .CodePage = 65001
   .OverwriteFiles = False

   //these 2 lines should be in reversed order: 'save' before 'set file'
   .SaveVirtual defaultUploadsFolder   
   Set file = .Files("closingPic")

推荐阅读