![](/img/trans.png)
[英]Upload a file using Restlet multipart/form-data in java
[英]Retrieving hidden variable value in Controller Error using “multipart/form-data” to upload file
好吧,我的任務是上傳文件,並且有兩個必須以不同類型上傳的應用程序(app),一個應用程序稱為APA,另一個名為fSCG。 當我刪除APA else SCG的代碼時,如果我使用APA else SCG的代碼,則代碼可以工作,並且出現空錯誤。 請看下面的代碼
在我的JSP中,代碼如下-
<form name="upload" action="/call" enctype= "multipart/form-data" method="POST">
Select file: <input type="file" name="file"/>
<input type="hidden" name="app" value="${app}"/>
<input type="submit" value="Upload"/>
</form>
這是java控制器類
@RequestMapping(value = "/call", method = RequestMethod.POST)
public void process(HttpServletRequest request, HttpServletResponse response) throws Exception {
final String app = request.getParameter("app");
**if (app.equals(APA) {** This is where the error is
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
response.setContentType("text/html");
java.io.PrintWriter out = response.getWriter( );
if (!isMultipart) {
return;
}
out.println("<h2> File is successfully uploaded<h2>");
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
// Parse the request
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
String fileName = new File(item.getName()).getName();
String uploadFolder = "C:\\Users;
String filePath = uploadFolder + File.separator + fileName;
File uploadedFile = new File(filePath);
item.write(uploadedFile);
}
}
} catch (FileUploadException ex) {
throw new ServletException(ex);
} catch (Exception ex) {
throw new ServletException(ex);
}
}
else if
if(app.equals(SCG)){**錯誤,此處上傳的代碼與上面幾乎相同}
為什么我無法上傳應用程序,請給我建議一些可能的例子
為了在Spring中訪問上載的文件,您必須在MVC配置文件(aka bean.xml
)中添加以下字段:
<!-- Multipart resolver to be used for file uploading mechanisms -->
<bean name="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="1000000"/>
</bean>
然后,您可以通過以下方式訪問Controller
類中上載文件的內容和元數據:
@RequestMapping(value = "register")
public void register(MultipartFile uploadedFile){
System.out.println(uploadedFile.getContentType());
System.out.println(uploadedFile.getOriginalFileName());
System.out.println(uploadedFile.getSize());
byte[] fileContents = uploadedFile.getBytes();
}
嘗試這個
@RequestMapping(value = "register")
public void register(@RequestParam(value="file") MultipartFile uploadedFile,@RequestParam(value="app")String app){
System.out.println(uploadedFile.getContentType());
System.out.println(uploadedFile.getOriginalFileName());
System.out.println(uploadedFile.getSize());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.