Ядро Coldfusion Ява вместо Cffile

Я использую тег cffile в приложении Coldfusion 2016 (веб-сайт) для загрузки изображений с пользователя на сервер.

Мне приказали прекратить использовать cffile и начать использовать базовый Java вместо этого, потому что это более эффективно.

мне дали этот код, который показывает, как взять dir файлов и заархивировать их ядром java. Но не был достаточно умен, чтобы использовать его для своих нужд.

Мне нужна страница, чтобы получить простой POST и переместить файл, размещенный в определенный каталог на сервере. обычно на странице "действий" веб-сайта я бы использовал:

cffile action="upload" filefield="FieldNameFromPostedForm" destination="MyDirectoryOnServer"  

Кто-нибудь может указать мне направление, чтобы увидеть под капюшоном Coldfusion, чтобы я мог в конечном итоге с некоторой магией, как:

FileOutputStream = createobject("java", "java.io.FileOutputStream"); 

в функции.

Спасибо!

Отчет о проделанной работе:
Я ближе к тому, что мне сказали делать. файл записывается на сервер, но впоследствии я получаю сообщение об ошибке, поэтому мне не хватает части головоломки

<cfscript>
function bj_script(source, server_dest_Path) {
try { 
    FileOutputStream = createobject("java", "java.io.FileOutputStream"); 
    BufferedOutputStream = createobject("java", "java.io.BufferedOutputStream"); 
    FileInputStream = createobject("java", "java.io.FileInputStream"); 
    BufferedInputStream = createobject("java","java.io.BufferedInputStream");

    the_file = createobject("java","java.io.File"); 
    the_file.init(source);

    FileInputStream.init(the_file);
    BufferedInputStream.init(FileInputStream); 
    FileOutputStream.init(server_dest_Path); 
    BufferedOutputStream.init(FileOutputStream); 

    thisbyte = 0; 
    while (thisbyte neq -1){ 
        thisbyte = BufferedInputStream.read(); 
        if (thisbyte neq -1){ 
            BufferedOutputStream.write(thisbyte); 
        } 
    } 

    FileOutputStream.close(); 
    BufferedOutputStream.close(); 
    return true; 
} 
catch(Any exception) { 
    return exception; 
} 
}
</cfscript>

<form method="post" enctype="multipart/form-data">
<input type="File" name="test"><br>
<input type="Submit"><br>
</form>

<cfif request_method is "post">
<cfset ccc = bj_script(form.test, "C:\inetpub\wwwroot\mywebsite\temp_img\blah.jpg") />
</cfif>

после изображения в моих тестовых загрузках я получаю сообщение об ошибке типа " java.io.IOException" с сообщением "Поток закрыт"
я должен делать цикл while неправильно. может ява-ботаник подскажет что поменять?

1 ответ

Вот кое-что, что я написал несколько лет назад, чтобы сделать почти такую ​​же вещь с помощью ColdFusion ResultSet. Должен послужить приличным учебником по подключению к классу Java из CF и записи файлов.

https://cfprimer.blogspot.com/2009/01/coldfusion-fast-query-to-file-export.html

Мне приказали прекратить использовать cffile и начать использовать базовый Java вместо этого, потому что это более эффективно.

Возможно, стоит указать, что CFFile также использует базовую Java для записи файла?

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