如何上传文件

发布于 2024-12-03 17:03:59 字数 591 浏览 1 评论 0原文

我尝试将文件从客户端上传到

客户端的服务器,我

在服务器端有一个文件输入我

 private void uploadFile(final FileTransfer fileTransfer) {

    String destinationFile = "/home/nat/test.xls";
    InputStream fis = null;
    FileOutputStream out = null;
    byte buf[] = new byte[1024];
    int len;
    try {
        fis = fileTransfer.getInputStream();
        out = new FileOutputStream(new File(destinationFile));

        while ((len = fis.read(buf)) > 0) {
            out.write(buf, 0, len);
        }

    } 
}

在服务器上创建了一个文件,但它是空的 当我调试时,我可以看到 fis 不为空,

有什么想法吗?

i try to upload a file from client to server

on the client side, i have a file input

on server side i have

 private void uploadFile(final FileTransfer fileTransfer) {

    String destinationFile = "/home/nat/test.xls";
    InputStream fis = null;
    FileOutputStream out = null;
    byte buf[] = new byte[1024];
    int len;
    try {
        fis = fileTransfer.getInputStream();
        out = new FileOutputStream(new File(destinationFile));

        while ((len = fis.read(buf)) > 0) {
            out.write(buf, 0, len);
        }

    } 
}

a file is created on the server, but it's empty
when i debug, i can see then fis is not null

any idea?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风铃鹿 2024-12-10 17:03:59

以下是我的代码摘录:

    try {    
        File fileData = new File(fileTransfer.getFilename());         

        // Write the content (data) in the file
        // Apache Commons IO: (FileUtils)
        FileOutputStream fos = FileUtils.openOutputStream(fileData);
        // Spring Utils: FileCopyUtils 
        FileCopyUtils.copy(fileTransfer.getInputStream(), fos);

        // Alternative with Apache Commons IO
        // FileUtils.copyInputStreamToFile(fileTransfer.getInputStream(), fileData);


    // Send the file to a back-end service
    myService.persistFile( fileData );

    } catch (IOException ioex) {
        log.error("Error with io")
    }
    return fileTransfer.getFilename(); // this is for my javascript callback fn

Apache Commons IO 是用于此类操作的一个很好的库(我也使用 Spring Utils)。如果您没有 Spring 上下文,请使用带注释的 Apache 替代方案(检查语法,未验证)。

Here is a code extract of mine:

    try {    
        File fileData = new File(fileTransfer.getFilename());         

        // Write the content (data) in the file
        // Apache Commons IO: (FileUtils)
        FileOutputStream fos = FileUtils.openOutputStream(fileData);
        // Spring Utils: FileCopyUtils 
        FileCopyUtils.copy(fileTransfer.getInputStream(), fos);

        // Alternative with Apache Commons IO
        // FileUtils.copyInputStreamToFile(fileTransfer.getInputStream(), fileData);


    // Send the file to a back-end service
    myService.persistFile( fileData );

    } catch (IOException ioex) {
        log.error("Error with io")
    }
    return fileTransfer.getFilename(); // this is for my javascript callback fn

Apache Commons IO is a good library to use for such manipulations (I use Spring Utils as well). If you do not have a Spring context, use the commented alternative with Apache (check the syntax, it is not verified).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文