|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Mar 2008
Messaggi: 2
|
[JAVA/SERVLET] Upload di un file su server
Ciao a tutti.
Devo uploadare un file su un server, per fare questo chiamo una servlet ed utilizzo le com.oreilly. Pare che funzioni, difatti selezionando un file tramite un form di tipo <form ENCTYPE='multipart/form-data' action='../FileUpload' method='post'> con l'oggetto con l'input type="file" viene copiato il file nella directory specificata. Il mio problema è che vorrei rinominare tale file con una stringa presa da un parametro che riesco a passare dalla pagina.jsp alla servlet. toRename() mi restituisce sempre false e se provo a specificare un nome diverso da quello ottenuto dal form mi solleva un'eccezione. Codice:
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.ServletUtils;
public class FileUpload extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException {
String status = null;
String forw = null;
res.setContentType("text/plain");
MultipartRequest multi = new MultipartRequest(req,".");
String nf = req.getParameter("nf"); //stringa con cui vorrei rinominare il file
File f = multi.getFile("fimg"); //file da copiare
String fileName = multi.getFilesystemName("fimg");
if(nf==null)
nf=multi.getParameter("nf");
String type = multi.getContentType(fileName);
nf=nf+".jpg";
if (f!=null)
{
//fileName=nf + ".jpg"; //se cambio nome qui mi da eccezione
File fOUT = //new File(req.getContextPath(), fileName);
new File(req.getSession().getServletContext().getRealPath("/imgs/") , fileName);
FileInputStream fIS = new FileInputStream(f);
FileOutputStream fOS = new FileOutputStream(fOUT);
try{
while (fIS.available()>0)
fOS.write(fIS.read());
fOS.flush();
fIS.close();
fOS.close();
status="Operazione eseguita con successo";
}catch(Exception e)
{
status = " Errore nel caricamento file " + e.toString();
}
}
File file = new File(req.getSession().getServletContext().getRealPath("/imgs/") , fileName);
File file2 = new File(req.getSession().getServletContext().getRealPath("/imgs/") , nf);
boolean success= file.renameTo(file2);
//questo success mi da sempre false.
}
}
Grazie in anticipo per le risposte. Ultima modifica di config : 22-08-2009 alle 17:15. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:07.



















