Несогласованный ответ с использованием типа ввода = File с использованием ColdFusion 8

Мы запускаем ColdFusion 8 в IE-10 на Windows Server 2003 с IIS 6.0 и используем HTTPS.

На странице Test.cfm есть этот базовый код для создания кнопки «просмотра» для выбора файла для загрузки и последующей загрузки файла:

<CFIF IsDefined("form.Action")>
        <CFFILE ACTION="UPLOAD"
            DESTINATION="D:\Documents\123\"
                  NAMECONFLICT="OVERWRITE"
                  FILEFIELD="Filedata">
    <b>File uploaded.</b> 
<CFSET PathName = "#File.ClientFileName#.#File.ClientFileExt#">
<CFOUTPUT>
    <CFQUERY NAME="Attachments" DATASOURCE="#PriSource#" USERNAME="Test" PASSWORD="Account">
        INSERT INTO V$ATTACH_DOCs
            (ID, DOCNAME, DOCLOCATION)
        VALUES (123, 'Attach1', '#PathName#')
    </CFQUERY>

</CFIF>

<FORM NAME="FileUpLoadNew" id="FileUpLoadNew" action="../TEST/Test.cfm" enctype="multipart/form-data" method="post">
<input type="Hidden" name="Action" value="Upload">
<INPUT TYPE="File" name="Filedata" size="45" maxlength="255">   
<INPUT TYPE="Submit"  NAME="AttachButton"  WIDTH="90" VALUE="Attach">
</FORM>

Проблема: этот код почти всегда работает с такими типами файлов, как (.txt, .doc, .cfm. .Sql). Делает даже большие файлы размером не менее 5-10 Мб. Но файлы .pdf, jpg и большие .doc файлы (4 МБ) будут вызывать зависание «Ожидание ответа от Our.Site.URL ...» до тех пор, пока не появится сообщение «Страница не может быть отображена».

Однако иногда мы можем просто перезагрузить страницу и выбрать тот же файл, и он загрузится нормально! А затем мы можем повторить попытку другого файла, и он может загрузиться, а может и не загрузиться. Мы также видели «HTTP error 413 Request Entity too large», когда файл небольшой, например 300 КБ, обычно это файл pdf.

Сначала мы думали, что это настройка для UploadReadAheadSize на сервере. Увеличили безрезультатно.

Мы также протестировали, используя только <INPUT TYPE="File" ...> и <INPUT TYPE="Submit" ...> и даже не вызывая CFFILE, и мы можем увидеть ту же проблему, когда определенные типы файлов не принимаются, а поле просмотра не очищается и говорит «Ожидание ответа ...». Мы думали, что проблема связана с CFFILE, но этот тест показывает, что он должен быть в IE или на сервере. Мы также пробовали использовать FireFox и получили такие же противоречивые результаты.

Похоже, что на сервере возникают проблемы с файлами pdf, jpg и более крупными, но не все время. Перезагрузка страницы иногда позволяет загрузить файл. Но это непоследовательно. У меня нет доступа к серверу для изменения настроек, но я могу отправлять запросы на их изменение. Нам просто нужно последовательное поведение пользователей при загрузке файлов.


person Tony Soprano    schedule 21.05.2015    source источник
comment
Я считаю, что ответ, который вы ищете, здесь; здесь есть хорошее объяснение настроек, которые вы ищете: serverfault.com/questions/582225/   -  person FlipperPA    schedule 25.05.2015


Ответы (1)


Кажется, эта проблема решена. Мы увеличили размер UploadReadAheadSize на сервере до 200 КБ, но это ни на что не повлияло. Итак, кто-то предложил попробовать 20 МБ, что намного превышает размер любого документа, который нам нужно будет прикрепить. Но теперь все файлы работают с кодом загрузки без сбоев. Мы протестировали его с файлами разного размера до 10 МБ, разными типами файлов и разными пользователями. Ответ теперь последовательный.

person Tony Soprano    schedule 27.05.2015