users@glassfish.java.net

Re: unable to delete file?

From: Jeanfrancois Arcand <Jeanfrancois.Arcand_at_Sun.COM>
Date: Tue, 01 Jul 2008 21:11:44 -0400

Salut,

is the http file cache enabled? I think that the issue if it is. To turn
it off, edit domain.xml using admin gui (or cli) and set:

> <http-file-cache file-caching-enabled="false" file-transmission-enabled="false" globally-enabled="false" hash-init-size="0" max-age-in-second
> s="30" max-files-count="1024" medium-file-size-limit-in-bytes="537600" medium-file-space-in-bytes="10485760" small-file-size-limit-in-bytes="2048" sm
> all-file-space-in-bytes="1048576"/>

Set file-caching-enabled and globally-enabled to false.

Let us know the result.

A+

-- Jeanfrancois

glassfish_at_javadesktop.org wrote:
> i have a servlet that is getting a file via multipart/form-data and using com.oreilly.servlet.MultipartRequest to process. I get the file from the MultipartRequest copy it to another directory and then I want to delete the temp directory. NO GO. here is my code any help? (I have tried uploadedFile.delete(), I have tried new File(absfilepath).delete)<br>
> <br>
> I am not getting an error but File.delete returns false.
> <br>
> package com.zykis.www.Servlet;
> <br>
> import com.oreilly.servlet.MultipartRequest;<br>
> import java.awt.Image;<br>
> import java.io.*;<br>
> import java.net.*;<br>
> <br>
> import java.util.Enumeration;<br>
> import java.util.Properties;<br>
> import javax.servlet.*;<br>
> import javax.servlet.http.*;<br>
> import javax.swing.ImageIcon;<br>
> <br>
> <br>
> public class UploadServlet extends HttpServlet {<br>
> <br>
> private String tempPath;<br>
> private final int defaultMax = 20;<br>
> <br>
> public void init( ) {<br>
> tempPath = getServletContext( ).getRealPath("/") + "temp";<br>
> }<br>
>
> protected void processRequest(HttpServletRequest request, HttpServletResponse response)<br>
> throws ServletException, IOException {<br>
> <br>
> try{ <br>
> MultipartRequest mpr = new MultipartRequest(
> request,tempPath,defaultMax * 1024 * 1024);<br>
> Enumeration fileEnum = mpr.getFileNames();<br>
> String fileIndex = (String) fileEnum.nextElement();<br>
> File uploadedFile = mpr.getFile(fileIndex); <br>
> <br>
> response.setContentType("text/html");<br>
> java.io.PrintWriter out = response.getWriter( );<br>
> out.println("<html>");<br>
> out.println("<head>");<br>
> out.println("<title>Servlet upload</title>");<br>
> out.println("</head>");<br>
> out.println("<body>");<br>
> <br>
> String dealerID = "";<br>
> String templateID = "";<br>
> String imageID = "";<br>
> boolean validRequest = true;<br>
> <br>
> if(mpr.getParameter("dealerID").compareToIgnoreCase("") != 0)<br>
> { dealerID = mpr.getParameter("dealerID"); }<br>
> else{ validRequest = false; } <br>
> <br>
> if(validRequest && mpr.getParameter("templateID").compareToIgnoreCase("") != 0)<br>
> { templateID = mpr.getParameter("templateID"); }<br>
> else{ validRequest = false; } <br>
> <br>
> if(validRequest && mpr.getParameter("imageID").compareToIgnoreCase("") != 0)
> { imageID = mpr.getParameter("imageID"); }<br>
> else{ validRequest = false; }<br>
> <br>
> if(uploadedFile == null)<br>
> { validRequest = false; }<br>
> <br>
> if(validRequest)<br>
> {<br>
> // create and load properties<br>
> Properties props = new Properties();<br>
> String fpath = request.getRealPath( "dealer" + dealerID +
> "/template" + templateID + "/upload.properties");<br>
> FileInputStream in = new FileInputStream(fpath);<br>
> props.load(in);<br>
> in.close();<br>
> <br>
> boolean validFile = true; <br>
> String fileName = uploadedFile.getAbsolutePath();<br>
> long fileSize = uploadedFile.length(); <br>
> String maxSize = props.getProperty("maxFileSize");<br>
> String validWidthString = props.getProperty("img" + imageID + "_w");<br>
> String validHeightString = props.getProperty("img" + imageID + "_h");<br>
> <br>
> int dot = fileName.indexOf(".");<br>
> String fileExt = fileName.substring(dot+1);<br>
> <br>
> //check file size<br>
> if(fileSize > Long.valueOf(maxSize))<br>
> { out.print("file is too big, max file size is " + maxSize);<br>
> validFile = false; <br>
> }<br>
> //check file type<br>
> if(validFile && props.getProperty(fileExt) == null) <br>
> { out.print(fileExt + " is an invalid file extension");<br>
> validFile = false; <br>
> }<br>
> //check width and height<br>
> Image img = new ImageIcon(fileName).getImage();<br>
> int imgWidth = img.getWidth(null);<br>
> int imgHeight = img.getHeight(null);<br>
> <br>
> if(Integer.valueOf(validWidthString) == 0)<br>
> { //DO NOTHING there is no restriction.<br>
> }<br>
> else if(imgWidth != Integer.valueOf(validWidthString))<br>
> { out.print("<br>width must equal " + validWidthString);<br>
> validFile = false; <br>
> }<br>
> <br>
> if(Integer.valueOf(validHeightString) == 0)<br>
> { //DO NOTHING there is no restriction.<br>
> }<br>
> if(imgHeight != Integer.valueOf(validHeightString))<br>
> { out.print("<br>height must equal " + validHeightString);<br>
> validFile = false;<br>
> }<br>
> <br>
> if(!validFile)<br>
> { uploadedFile.delete(); }<br>
> else<br>
> { <br>
> String newPath = getServletContext( ).getRealPath("dealer" <br>
> + dealerID + "/template" + templateID <br>
> + "/image" + imageID + "/" + uploadedFile.getName());<br>
> <br>
> File renamedFile = new File(newPath); <br>
> copyFile(uploadedFile, renamedFile); <br>
> }<br>
> //if not for specific template then add to dealers gallery<br>
> }else if(dealerID != null){<br>
> <br>
> String fileName = uploadedFile.getAbsolutePath(); <br>
> <br>
> Image img = new ImageIcon(fileName).getImage();<br>
> int imgWidth = img.getWidth(null);<br>
> int imgHeight = img.getHeight(null); <br>
> <br>
> File imgDir = new File(getServletContext().getRealPath("dealer" <br>
> + dealerID +"/Gallery/" + imgWidth + "x" + imgHeight));<br>
> <br>
> if(!imgDir.exists())<br><br>
> { imgDir.mkdirs(); }<br>
> <br>
> File newFile = new File(imgDir, uploadedFile.getName()); <br>
> copyFile(uploadedFile, newFile);<br>
> <br>
> out.println(newFile.getAbsolutePath());<br>
> out.println("file uploaded : " + uploadedFile.getAbsolutePath());<br>
> }else{<br>
> out.println("invalid request"); <br>
> } <br>
> <br>
> mpr.getFile(fileIndex).delete();<br>
> <br>
> out.println("</body>");<br>
> out.println("</html>"); <br>
> <br>
> }catch(Exception e)<br>
> { java.io.PrintWriter out = response.getWriter( );<br>
> out.println("<html>");<br>
> out.println("<head>");<br>
> out.println("<title>Servlet upload</title>");<br>
> out.println("</head>");<br>
> out.println("<body>");<br>
> out.print("Sorry there seems to be a problem with your upload<br>" + e.getMessage());<br>
> out.println("</body>");<br>
> out.println("</html>");<br>
> }<br>
> }<br>
> <br>
> private void copyFile(File oldFile, File newFile)throws Exception {<br>
> FileInputStream fis = new FileInputStream(oldFile);<br>
> FileOutputStream fos = new FileOutputStream(newFile);<br>
> byte[] buf = new byte[1024];<br>
> int i = 0;<br>
> while((i=fis.read(buf))!=-1) {<br>
> fos.write(buf, 0, i);<br>
> }<br>
> fis.close();<br>
> fos.close();<br>
> }<br>
> [Message sent by forum member 'icemandrew' (icemandrew)]
>
> http://forums.java.net/jive/thread.jspa?messageID=283836
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>