永发信息网

MVC数据库访问 上传照片

答案:1  悬赏:0  手机版
解决时间 2021-07-20 23:33

数据库连接没问题,文件流再写入数据库的时候报了异常,请大家帮忙看下

request.setAttribute("upFile",upFile);
String tempFileName=(String)session.getId();
InputStream in=request.getInputStream();
String saveFileName=loginName;
//上传文件保存的物理路径
//System.out.println("执行到这里的ytryyt");
String driverPath = request.getRealPath("image");
//System.out.println(driverPath);
uploadFileBll upbll=new uploadFileBll();
boolean flag=upbll.uploadFileMethod(driverPath,tempFileName,saveFileName,in);
System.out.println(flag);
System.out.println("执行到这里的");
if(flag){
examineeBll exambll=new examineeBll();
int n=exambll.setExamineePic(
loginName,upbll.getSavedFileName());
if(n==1){
backMessage="文件上传成功!";

flag一直返回 false

public boolean uploadFileMethod(String driverPath,String tempFileName,String saveFileName,InputStream fileSource){

//backMessage="上传文件的扩展名不符合要求!";
try{
uploadFileDal upFile=new uploadFileDal( driverPath, tempFileName, saveFileName, fileSource);
//System.out.println(upFile);
flag=upFile.uploadFileMethod();
backMessage=upFile.getBackMessage();
//System.out.println(backMessage);
this.setUploadFileName(upFile.getUploadFileName());
this.setSavedFileName(upFile.getSaveFileName());
}
catch(Exception exp){
flag=false;
backMessage="上传文件失败!";
this.setUploadFileName("");
this.setSavedFileName("");
}
return flag;

public boolean uploadFileMethod(){
try{//上传文件保存到文件夹
File f1=new File(driverPath,tempFileName);
FileOutputStream fos=new FileOutputStream(f1);
byte b[]=new byte[10000];
int n;
while((n=fileSource.read(b))!=-1){
fos.write(b,0,n);
}
fos.close();
fileSource.close();
//读取临时文件夹中的第二行内容
RandomAccessFile random=new RandomAccessFile(f1,"r");
int second=1;
String secondLine=null;
while(second<=2)
{
secondLine=random.readLine();
second++;
}
//得到上传文件名
int position=secondLine.lastIndexOf('\\');
uploadFileName=secondLine.substring(position+1,secondLine.length()-1);
//转换编码,识别汉字文件名
byte cc[]=uploadFileName.getBytes("iso-8859-1");
uploadFileName=new String(cc);
//得到上传文件的扩展名
int extposition=uploadFileName.lastIndexOf('.');
String extName=uploadFileName.substring(extposition+1,uploadFileName.length());
//获取上传临时文件的第四行回车符的位置
random.seek(0);
long forthEndPosition=0;
int forth=1;
while((n=random.readByte())!=-1 && forth<=4){
if(n=='\n'){
forthEndPosition=random.getFilePointer();
}
}
//删除文件
saveFileName=saveFileName.concat("."+extName);
File dir=new File(driverPath);
dir.mkdir();
File file[]=dir.listFiles();
for(int k=0;k<file.length;k++){
if(file[k].getName().equals(saveFileName)){
file[k].delete();
}
}
//按新文件名保存文件
File savingFile=new File(driverPath,saveFileName);
RandomAccessFile random2=new RandomAccessFile(savingFile,"rw");
//在临时文件夹中获得文件结束位置
random.seek(random.length());
long endPosition=random.getFilePointer();
long mark=endPosition;
int j=1;
while((mark>=0)&& (j<=6)){
mark--;
random.seek(mark);
n=random.readByte();
if(n=='\n'){
endPosition=random.getFilePointer();
j++;
}
}
random.seek(forthEndPosition);
long startPoint=random.getFilePointer();
while(startPoint<=endPosition-1){
n=random.readByte();
random2.write(n);
startPoint=random.getFilePointer();
}
random2.close();
random.close();
f1.delete();
flag=true;
backMessage="成功上传";
}
catch(Exception exp){
System.out.println("uploadFileMethod"+exp.toString());
backMessage=" "+exp;
flag=false;
}
return flag;
}
}

最佳答案
你好哦楼主~
很高兴看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
对于你的问题我爱莫能助!
可能是你问的问题有些专业了,或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也会比较热心,能快点帮你解决问题。
快过年了,
最后祝您全家幸福健康快乐每一天!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
周围人都在观察我,觉得好别扭 我该怎么表现?
诺基亚5300手机可以在屏幕右上方显示小企鹅(
QQ自由幻想QQ会员不是可以领取青铜礼包吗?在
上海浦东离广西有多远
黄石港区中国铁通(黄石港营业厅)地址在哪,我
泡泡堂怎么考段最快 谁能带我考段啊
男性油性皮肤用什么样缩小毛空和祛痘产品比较
武林外传捏羽化问题
游戏“纵横四海”
N78和6220C哪个更值得买
CF红魔谁都可以买吗
葫芦岛哪家大酒店现在招聘点菜员
梦见被猫咬流血
郸城县周口芙蓉缘美容养生会所地址在哪,我要
河长制推进会上的讲话,实行河长制会不会取消
推荐资讯
适合中学生养得动物
河北工程大学科信学院邮箱编号
求一款容量小但很好玩的网络游戏
马自达风来是不是概念车?
我爱的人有喜欢的人了我该怎么做?
尖锋SR是什么样的
2009中医执业助理医师笔试成绩何时公布?
关于听雨声的好诗句,有关小楼听雨的诗句
中央门火车站去南通的有几点的
《我一见你就笑》是有这么首歌么?是哪部电视
阳明区牡丹江中国工商银行地址在什么地方,想
关于逻辑推理题目
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?