Непоследовательный ответ с использованием input type="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-ошибку 413 Request Entity слишком большой", когда файл маленький, например 300 КБ, как правило, с файлом PDF.

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

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

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

1 ответ

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

Другие вопросы по тегам