Tomcat Liferayファイルのアップロードに関する問題が発生しています。Tomcat Liferay小さなファイルのアップロード(1kb未満)
コードに空のファイルサイズがあり、Tomcat Tempフォルダに新しくアップロードされたファイルを見つけようとすると、Tomcatがnullを返す原因となります。
マイコード:
File[] files = uploadRequest.getFiles("fileupload");
for(File f : files) {
(f.length == 0) { /* This is always true (null file upload) */ }
FileUtil.copyFile(f, newfile); // This throws a null pointer exception
}
// Also happens with any other attempts at getting the file from the form, like this (below).
// None of these work with files < 1 kb
FileItem[] fileitems = uploadRequest.getMultipartParameterMap().get("fileupload");
ファイルは1キロバイトよりも大きい場合、それは実際に動作します。実際の問題は、私が実際にFileUtil.copyFile()を使って実際にファイルを移動しようとすると、上記のコードエラーが発生するということです。元のファイル(この時点で一時フォルダにあるはずです)を示すnullポインタ例外がスローされます。無効である。
なぜこれが起こるのかかなり混乱します。ここでは、このためのHTMLは次のとおりです。
<aui:form action="<%=uploadFileURL%>" enctype="multipart/form-data" method="POST">
<aui:input type="hidden" value="/" name="selected_dir_input"/>
<b>Selected Folder: </b>
<span id="selected_folder">/Home/User/Desktop/Some_Selected_file.ext</span>
<aui:input type="file" name="fileupload" multiple="true"/>
<aui:button name="Upload" value="Upload" type="submit" />
</aui:form>
?あなたは 'uploadRequest'をどうやって取得していますか? –
'UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(リクエスト);'およびそのパッケージから 'com.liferay.portal.kernel.upload.UploadPortletRequest' – Billy