0

次のコードでエラーを下回っています: FileInputStream コンストラクターに完全に追加されたファイル名を渡しています。例: localhost:8080/projectName/OuterFolder/InnerFloder/example.doc

logger.info("File Path: "+ path+"/OuterFolder/InnerFloder/"+fileName);

POIFSFileSystem  fs = new POIFSFileSystem(new 
                 FileInputStream(path+"/OuterFolder/InnerFloder/"+fileName));
http:\localhost:8080\projectName\OuterFolder\InnerFloder\Example.doc (The filename, directory name, or volume label syntax is incorrect)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at com.avi.service.UserService.createPolicy(UserService.java:1339)
    at com.avi.service.UserService$$FastClassByCGLIB$$de8fbe27.invoke(<generated>)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:617)
    at com.avi.service.UserService$$EnhancerByCGLIB$$7c22f094_2.createPolicy(<generated>)
    at com.avi.controller.TestController.openPolicy(TestController.java:2733)
4

2 に答える 2

3
http:\localhost:8080\projectName\OuterFolder\InnerFloder\Example.doc

有効なファイル パスではありません。Windows では、「C:」のような「ドライブ」文字「http:」はありません。実際、「InnerFloder」も存在するとは思えません。

Web アプリケーションから取得する場合は、次を使用しますin

URL url = new URL(path + "/OuterFolder/InnerFloder/Example.doc");
InputStream in = url.openStream();

ファイルをどこかに書き込むには (Web アプリに書き戻すことはできませんhttp://...)、ファイルを選択します。

File file = new File("C:/OuterFolder/InnerFloder/" + fileName);
file.getParentFile().mkdirs(); // Create any missing directories
OutputStream out = new BufferedOutputStream(new FileOutputStream(file));
fs.writeFileSystem(out);
out.close();

これは新しいファイルです。

于 2013-08-05T10:51:45.207 に答える
1

FileInputStreamURL ではなく、ファイル システム内の実際のファイル パスが必要です。

于 2013-08-05T10:36:29.703 に答える