【问题标题】:coldfusion core java instead of cffileColdfusion核心java而不是cffile
【发布时间】:2017-09-11 21:17:51
【问题描述】:

我在 Coldfusion 2016 应用程序(网站)中使用 cffile 标签将图像从用户上传到服务器。

我已被命令停止使用 cffile 并开始使用底层 java,因为它更有效。

i was given this code which shows how to take a dir of files and zip them with the core java。 但不够聪明,无法满足我的需要。

我需要一个页面来接收简单的 POST 并将发布的文件移动到服务器上的特定目录。通常在我会使用的网站的“操作”页面上:

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

谁能给我指出一个方向,让我看到冷融合的引擎盖下,这样我就可以得到一些魔法,比如:

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”类型的错误返回,消息为“Stream Closed”
我必须不正确地执行while循环。有 Java 书呆子可以告诉我要改变什么吗?

【问题讨论】:

  • 你的谷歌搜索字符串是java upload file to server
  • 我很好奇java在什么方面更高效?我可以想到一些领域,但它们是特定的场景。例如,如果您需要在内存中加载一个非常大的文件并进行字符串操作,ColdFusion 将读取整个文件。如果您只是从一个文件夹复制到另一个文件夹,我假设 CF 在后台使用相同的文件流,它在读取字节时会写出字节。您是否有一些基准来确保您的 Java 版本确实有所改进?
  • 没有基准,除了在上传和处理的一组 10 张图像上的粗略秒表计时器。这是另一个程序员告诉我的老板我做错了,所以现在他们强迫我改变它的老故事。

标签: java coldfusion cffile


【解决方案1】:

这是我几年前写的,目的是用 ColdFusion ResultSet 做几乎完全一样的事情。应该作为如何从 CF 连接到 Java 类并写入文件的不错的入门读物。

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

我已被命令停止使用 cffile 并开始使用底层 java,因为它更有效。

可能值得指出的是,CFFile 也使用底层的 Java 来编写文件?

【讨论】:

  • CFFile 也使用底层 Java:是的,我试图告诉我的老板,但他们没有。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-02
  • 2014-04-18
  • 1970-01-01
相关资源
最近更新 更多