Galera,
fiz um exemplo de upload, e na minha máquina ele funciona perfeitamente, ao colocar no servidor, que é aonde preciso usar o arquivo não é enviado pra la, não da nenhum erro, simplesmente o arquivo não chega, gostaria de saber onde ta o erro, não sei se precisa fazer uma conexão para ligar no servidor, imagino que não, me parece que o erro está apenas no savePath, deem uma olhada.
Página de Upload
<html>
<head>
</head>
<body>
<form ACTION="recebeupload.jsp" ENCTYPE="MULTIPART/FORM-DATA" METHOD="POST">
<INPUT TYPE="FILE" name="Filename"> <br>
<INPUT TYPE="SUBMIT" name="Enviar">
</form>
</body>
</html>
Página recebeupload:
<%@ page import="java.io.*"%>
<%
String savePath = "\\";
String filename = "";
ServletInputStream in = request.getInputStream();
byte[] line = new byte[128];
int i = in.readLine(line, 0, 128);
int boundaryLength = i - 2;
String boundary = new String(line, 0, boundaryLength);
while(i != -1) {
String newLine = new String(line, 0, i);
if(newLine.startsWith("Content-Disposition: form-data; name=\"")) {
String s = new String(line, 0, i-2);
int pos = s.indexOf("filename=\"");
if(pos != -1) {
String filepath = s.substring(pos+10, s.length() - 1);
pos = filepath.lastIndexOf("\\");
if(pos != -1) {
filename = filepath.substring(pos + 1);
} else {
filename = filepath;
}
i = in.readLine(line, 0, 128);
i = in.readLine(line, 0, 128);
i = in.readLine(line, 0, 128);
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
newLine = new String(line, 0, i);
while(i != -1 && !newLine.startsWith(boundary)) {
buffer.write(line, 0, i);
i = in.readLine(line, 0, 128);
newLine = new String(line, 0, i);
}
try {
RandomAccessFile f = new RandomAccessFile(savePath + filename, "rw");
byte[] bytes = buffer.toByteArray();
f.write(bytes, 0, bytes.length-2);
f.close();
} catch (Exception e) { }
}
}
i = in.readLine(line, 0 ,128);
}
%>
<img src="<%=filename%>">