title: FileNotFoundException (Permission Denied)
body: <p>All,
  I'm using commons-FileUpload to allow my students to upload their assignments to my server through the class website. It works just fine running tomcat/eclipse on my local machine. However, when testing it on my server I have through digitalocean.com I am getting a FileNotFoundException (PermissionDenied).</p>
  
  <p>Stack trace:</p>
  
  <pre><code>java.io.FileNotFoundException:
   /uploads/cosc111fall2013/Assignment1/Program1.java (Permission denied)
      at java.io.FileOutputStream.open(Native Method)
      at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:209)
      at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:160)
      at org.apache.commons.fileupload.disk.DiskFileItem.write(DiskFileItem.java:394)
      at uploadServlet.Uploader.doPost(Uploader.java:127)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
  </code></pre>
  
  <p>The offending code:</p>
  
  <pre><code>try {
              for (FileItem fi : uploaded) {
                  fi.write(new File(saveDirectory + fileName + "_"
                          + FilenameUtils.getName(fi.getName())));
              }
          } catch (Exception e) {
              e.printStackTrace();
              response.sendRedirect("/uploadFailed.jsp");
              return;
          }
  </code></pre>
  
  <p>I just chmodded the directories that the program writes to so they are all <code>drw-rw-rw-</code>. Any tips?</p>