@MultiPartConfig gerçekten kap için sadece bir işaretleyici arayüzüdür. Servlet başlatıldığında, sağlanan açıklama değerleri bir proxy nesnesi ile eşlenir. Gelen istek çok parçalı/form-veri olduğunda, yüklemenin bölümleri istek ile eşleştirilir ve kap, açıklamadan ve istek üzerindeki kısımlara dayanarak gerekli işi yapar. Bu süreci engellemenin bir yolu yoktur, çünkü her şey kapların bağırsaklarında gerçekleşir. Ancak, bir alternatif var. Bir dosya sistemi işlemini ikinci kez gerçekleştirmeyi gerektirir. Tüm parçalara sahip olduğunuzdan, dosyayı yeniden oluşturabilir ve seçtiğiniz konuma "yeniden yükleyebilirsiniz". Aşağıdaki yöntem gibi bir şey olabilir. Ben de senin aynı problem vardı
@Override
protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
throws ServletException, IOException {
httpServletResponse.setContentType("text/html");
PrintWriter printWriter = httpServletResponse.getWriter();
InputStream inputStream;
FileOutputStream fileOutputStream;
for (Part part : httpServletRequest.getParts()) {
inputStream = httpServletRequest.getPart(part.getName()).getInputStream();
int i = inputStream.available();
byte[] b = new byte[i];
inputStream.read(b);
String fileName = "";
for (String temp : part.getHeader("content-disposition").split(";")) {
if (temp.trim().startsWith("filename")) {
fileName = temp.substring(temp.indexOf('=') + 1).trim().replace("\"", "");
}
}
String uploadDir = "/temp";
fileOutputStream = new FileOutputStream(uploadDir + "/" + fileName);
fileOutputStream.write(b);
inputStream.close();
fileOutputStream.close();
printWriter.write("Uploaded file " + uploadDir + "/" + fileName + ".");
}
}
ile bu kristal berraklığında örneği inceleyelim
bitirdiniz ve sonra bir çalışma zamanı dosya konumu gerek "yeniden yüklemeden" başka seçeneğiniz yok parçalar. –