ASPupload «если не файл ничего» всегда возвращает false - PullRequest
2 голосов
/ 30 апреля 2020

Использование Persits ASPupload компонент для загрузки и обработки файлов (Classi c 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

Итак, как уже упоминалось раньше я печатал «нет файла».

Как это могло произойти?

Спасибо

1 Ответ

2 голосов
/ 30 апреля 2020

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")
...