急急!!!请教 用JspSmartUpload上传出现了问题~~~在线等
最近做在线书店的项目 添加书时 要上传图片
我用SmartUpload上传图片 老师出问题 图片能上传 就是上传的都是重复的 只能上传第一次传的 有时还报java.lang.StringIndexOutOfBoundsException: String index out of range: -190 错误
Servlet的代码如下:
package bookshop;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import com.jspsmart.upload.*;
import Entity.*;
import business.*;
public class addBookServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK ";
private ServletConfig sc;
private SmartUpload su;
private com.jspsmart.upload.Request req;
public void init() throws ServletException {
sc=this.getServletConfig();
su=new SmartUpload();
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
su.initialize(sc,request,response);
su.setTotalMaxFileSize(10000);
su.setAllowedFilesList( "jpg,gif ");
req=su.getRequest();
try {
su.upload();
String path=request.getRealPath( "/ ");
su.save(path+ "/upload ");
} catch (SmartUploadException ex) {
} catch (IOException ex) {
} catch (ServletException ex) {
}
String name=req.getParameter( "name ");
String description=req.getParameter( "description ");
float price=Float.parseFloat(req.getParameter( "price ").trim());
Files fs=su.getFiles();
com.jspsmart.upload.File file=fs.getFile(0);
String photoAddress= file.getFileName();
photoAddress= "/upload/ ".concat(photoAddress);
String keywords=req.getParameter( "keywords ");
int qh=Integer.parseInt(req.getParameter( "qh "));
int yt=Integer.parseInt( req.getParameter( "yt "));
int important=Integer.parseInt(req.getParameter( "important "));
int catalog=Integer.parseInt( req.getParameter( "parentname "));
if(yt==0){
photoAddress= "/upload/default.jpg ";
}
shop_product_info pro=new shop_product_info();
pro.setName(name);
pro.setCatalog_id(catalog);
pro.setDescription(description);
pro.setImg_path(photoAddress);
pro.setPrice(price);
pro.setImportance_show(important);
pro.setKeywords(keywords);
pro.setAbsence(qh);
pro.setShow_out(yt);
boolean flag=false;
business bus=new business();
flag=bus.addNewBook(pro);
bus.colseDB();
RequestDispatcher dis=null;
HttpSession session=request.getSession();
if(flag){
session.setAttribute( "bookname ",name);
dis= request.getRequestDispatcher( "/addBookSuccess.jsp ");
}else{
dis= request.getRequestDispatcher( "/addBookFaild.jsp ");
}
dis.forward(request,response);
// su.d
}
//Clean up resources
public void destroy() {
}
}
谢谢了啊
在线等
------解决方案--------------------
photoAddress= "/upload/ ".concat(photoAddress);
这句什么意思。。。好久没有用过smartupload了。。。
[解决办法]
String数组越界,访问了-190这个索引的数组,跟踪看看在哪出的异常,应该就可以解决了。
[解决办法]
关注
[解决办法]
你输出这个数组对象,看是不是为null