开发者

how to upload a file

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 c开发者_如何学Goan see then fis is not null

any idea?


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).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜