aayush2158 Ответов: 0

Как вставить несколько изображений в разные цвета в mysql


Fileupload с.ОСП

    <div class="col-lg-4 offset-lg-4">
	<form enctype="multipart/form-data" action="/Kastamandap/Admin/Controller     /uploadFile.jsp" method="post">
   <input name="file"  type="file" multiple>
   <input type="submit" class="btn btn-primary" value="upload">
</form>

протоколу.ОСП
String saveFile = "";

  File ff = null;
  String contentType = request.getContentType();
  if ((contentType != null) && contentType.indexOf("multipart/form-data") >= 0) {
      DataInputStream in = new DataInputStream(request.getInputStream());
      int formDataLength = request.getContentLength();
      byte dataBytes[] = new byte[formDataLength];
      int byteRead = 0;
      int totalBytesRead = 0;
      while (totalBytesRead < formDataLength) {
          byteRead = in.read(dataBytes, totalBytesRead, formDataLength);
          totalBytesRead += byteRead;
      }
      String file = new String(dataBytes);
      saveFile = file.substring(file.indexOf("filename=\"") + 10);
      saveFile = saveFile.substring(0, saveFile.indexOf("\n"));
      saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1, saveFile.indexOf("\""));
      int lastIndex = contentType.lastIndexOf("=");
      String boundry = contentType.substring(lastIndex + 1, contentType.length());
      int pos;
      pos = file.indexOf("filename=\"");
      pos = file.indexOf("\n", pos) + 1;
      pos = file.indexOf("\n", pos) + 1;
      pos = file.indexOf("\n", pos) + 1;
      int boundaryLocation = file.indexOf(boundry, pos) - 4;
      int startPos = ((file.substring(0, pos)).getBytes()).length;
      int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;

      ff = new File("D:/programmming/JAVA/eclipse-workspace/Kastamandap/WebContent/Images/" + saveFile);
      FileOutputStream fileOut = new FileOutputStream(ff);
      fileOut.write(dataBytes, startPos, (endPos - startPos));
      fileOut.flush();
      fileOut.close();

  }

он работает как исключенный
--------------------------------
Тот же код, но показывает мне ошибку

	String saveFile3 = "";

File ff3 =  null;
String contentType3 = request.getContentType();
if((contentType3 != null) && contentType3.indexOf("multipart/form-data") >= 0 ) {
	DataInputStream in3 = new DataInputStream(request.getInputStream());
	int formDataLength3 = request.getContentLength();
	byte dataBytes3[] = new byte[formDataLength3];
	int byteRead3 = 0;
	int totalBytesRead3=0;
	while(totalBytesRead3 < formDataLength3){
		byteRead3 = in3.read(dataBytes3,totalBytesRead3,formDataLength3);
		totalBytesRead3 += byteRead3;
	}
	String file3 = new String(dataBytes3);

        //error here
	saveFile3 = file3.substring(file3.indexOf("filename=\"")+10);

		saveFile3 = saveFile3.substring(0, saveFile3.indexOf("\n"));
		saveFile3 = saveFile3.substring(saveFile3.lastIndexOf("\\") + 1, saveFile3.indexOf("\""));
		int lastIndex3 = contentType3.lastIndexOf("=");
		String boundry3 = contentType3.substring(lastIndex3 + 1, contentType3.length());
		int pos3;
		pos3 = file3.indexOf("filename=\"");
		pos3 = file3.indexOf("\n", pos3) + 1;
		pos3 = file3.indexOf("\n", pos3) + 1;
		pos3 = file3.indexOf("\n", pos3) + 1;
		int boundaryLocation3 = file3.indexOf(boundry3, pos3) - 4;
		int startPos3 = ((file3.substring(0, pos3)).getBytes()).length;
		int endPos3 = ((file3.substring(0, boundaryLocation3)).getBytes()).length;
		
		 ff3 = new File("D:/programmming/JAVA/eclipse-workspace/Kastamandap/WebContent/Images/"+saveFile3);
		FileOutputStream fileOut3 = new FileOutputStream(ff3);
		fileOut3.write(dataBytes3, startPos3, (endPos3 - startPos3));
		fileOut3.flush();
		fileOut3.close();


Что я уже пробовал:

Я пробовал, но он показывает мне строку из связанного исключения
Exception

org.apache.jasper.JasperException: An exception occurred processing [/Admin/Controller/uploadFile.jsp] at line [71]

68: 	}
69: 	String file3 = new String(dataBytes3);
70: 	saveFile3 = file3.substring(file3.indexOf("filename=\"")+10);
71: 		saveFile3 = saveFile3.substring(0, saveFile3.indexOf("\n"));
72: 		saveFile3 = saveFile3.substring(saveFile3.lastIndexOf("\\") + 1, saveFile3.indexOf("\""));
73: 		int lastIndex3 = contentType3.lastIndexOf("=");
74: 		String boundry3 = contentType3.substring(lastIndex3 + 1, contentType3.length());

Richard MacCutchan

Строка не содержит того, что вы думаете, что она содержит. Используйте свой отладчик, чтобы узнать, какие фактические данные возвращаются. И добавьте некоторую правильную проверку ошибок в свой код; не просто предполагайте, что данные будут правильными.

0 Ответов