A problem I see (and there may be more) is your line:
On Monday, April 21, 2014 5:48:45 PM UTC-4, imen boukhris wrote:
-- File uploadedFile = File.createTempFile(UPLOAD_DIRECTORY,fileName);
Look at the javadoc for that call: http://docs.oracle.com/javase/7/docs/api/java/io/File.html#createTempFile(java.lang.String, java.lang.String)
You are sending a prefix of "C:\\Users\\dell\\Downloads\\" and a suffix something like MyFile.txt. Those are neither a suitable prefix nor a suitable suffix. Java inserts a random string between the prefix and suffix and tries to create that file in java.io.tmpdir. Your call is telling java to create a filename--not a path, but a filename--similar to "C:\\Users\\dell\\Downloads\\1234567890MyFile.txt". That is not a file name and the call to create the file fails.
Try instead something like
File uploadedFile = File.createTempFile("imen", ".tmp", UPLOAD_DIRECTORY);
That should create a file similar to imen1234567890.tmp in C:\\Users\\dell\\Downloads\\
I think we are out the GWT area and into the Apache Commons area (http://commons.apache.org/proper/commons-fileupload/index.html). I suggest if you have further problems exclude GWT by trying file upload from a simple HTML form. If you're servlet still won't work, maybe some on the Apache Commons list can help.
On Monday, April 21, 2014 5:48:45 PM UTC-4, imen boukhris wrote:
yes thad i am using a real directory on my computer.this is my entry pointpublic class UploadFile implements EntryPoint {private static final String UPLOAD_ACTION_URL = GWT.getModuleBaseURL()+ "upload";private static final String SERVER_ERROR = "An error occurred while "+ "attempting to contact the server. Please check your network "+ "connection and try again.";public void onModuleLoad() {// Create a FormPanel and point it at a service.final FormPanel form = new FormPanel();form.setAction(UPLOAD_ACTION_URL); form.setEncoding(FormPanel.ENCODING_MULTIPART); form.setMethod(FormPanel.METHOD_POST); // Create a panel to hold all of the form widgets.VerticalPanel panel = new VerticalPanel();form.setWidget(panel);ListBox lb = new ListBox();FileUpload upload = new FileUpload();upload.setName("uploadFormElement"); panel.add(upload);panel.add(new Button("Submit", new ClickHandler() {public void onClick(ClickEvent event) {form.submit();}}));form.addSubmitCompleteHandler(new FormPanel. SubmitCompleteHandler() { public void onSubmitComplete(SubmitCompleteEvent event) { Window.alert(event.getResults()); }});RootPanel.get().add(form);}}this is my servletpublic class FileUploadServlet extends HttpServlet {private static final long serialVersionUID = 1L;private static final String UPLOAD_DIRECTORY = "C:\\Users\\dell\\Downloads\\"; private static final String DEFAULT_TEMP_DIR = "upload";@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stubsuper.doGet(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// process only multipart requestsif (ServletFileUpload.isMultipartContent(req)) { File tempDir = getTempDir();if (!tempDir.exists()) {tempDir.mkdirs();}// Create a factory for disk-based file itemsFileItemFactory factory = new DiskFileItemFactory();// Create a new file upload handlerServletFileUpload upload = new ServletFileUpload(factory);// Parse the requesttry {List<FileItem> items = upload.parseRequest(req);for (FileItem fileItem : items) {// process only file uploadif (fileItem.isFormField()) continue;String fileName = fileItem.getName();// get only the file name not whole pathif (fileName != null) {fileName = FilenameUtils. getName(fileName);}File uploadedFile = File.createTempFile(UPLOAD_DIRECTORY,fileName); if (uploadedFile.createNewFile()) {fileItem.write(uploadedFile);resp.setStatus(HttpServletResponse.SC_ CREATED); resp.getWriter().print("The file was created successfully.");resp.flushBuffer();} elsethrow new IOException("The file already exists in repository.");}} catch (Exception e) {resp.sendError(HttpServletResponse.SC_ INTERNAL_SERVER_ERROR, "An error occurred while creating the file : " + e.getMessage());}} else {resp.sendError(HttpServletResponse.SC_ UNSUPPORTED_MEDIA_TYPE, "Request contents type is not supported by the servlet.");}}private File getTempDir() {return new File(DEFAULT_TEMP_DIR);}}an finally my web.xml<servlet><servlet-name>uploadServlet</servlet-name> <servlet-class>com.gwt.upload.server.FileUploadServlet</ servlet-class> </servlet><servlet-mapping><servlet-name>uploadServlet</servlet-name> <url-pattern>/uploadfile/upload</url-pattern> </servlet-mapping><welcome-file-list><welcome-file>UploadFile.html</welcome-file> </welcome-file-list></web-app>and now i am getting this error
Le jeudi 3 avril 2014 00:36:28 UTC+2, imen boukhris a écrit :Hi GWT community,how can i upload a file to server from my desktop in my google web toolkit project.Anyone could provide me with good tutorial that explain the file upload solution from start to end please.thanks in advance
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment