qet2333 2019-11-04 21:20 采纳率: 0%
浏览 301

请大佬们看看我上传图片到本地项目然后数据库保存路劲为null是那部分出错了?

接收图片的jsp前端页面

    <form method="post" action="PicUpServlet" enctype="multipart/form-data">
        <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
            <legend>添加文章</legend>
        </fieldset> 

        <div class="layui-form-item layui-form-text"  >
             <div class="layui-input-block" style="margin-left: 0px;">
             <textarea placeholder="请输入内容" class="layui-textarea"></textarea>
             </div>
        </div>

        <!-- <input type="text" name="content" /><br/> -->

        <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;" >
            <legend>添加图片</legend>
        </fieldset> 
        <div   style="margin-left: 8px;">
        <input type="file" name="uploadFile"/>
        </div>
        <br/><br/>
        <div style="margin-left: 8px;">
        <input type="submit" value="上传" />
        </div>
    </form>

文件保存

package com.gugu.servlet;

import java.io.File;
import java.io.IOException;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.gugu.dao.WisUploadDao;
import com.gugu.pojo.GgNote;
import com.gugu.util.Upload;


public class PicUpServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private static final String UPLOAD_DIRECTORY = "C:\\MyBlog-master\\WebContent\\images";


    public PicUpServlet() {
        super();

    }


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.getWriter().append("Served at: ").append(request.getContextPath());
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.setCharacterEncoding("UTF-8");

        String path = UPLOAD_DIRECTORY+"//images//"+File.separator ;

        Map<String, String> map = Upload.upload(request, 1024 * 1024 * 10, path);
        String newFileName ="images"+File.separator+ map.get("newFileName");

        GgNote note = new GgNote();
        note.setNoteContent(map.get("content"));
        note.setNotePhoto(newFileName);

        System.out.println(newFileName);
        System.out.println(map.get("content"));

        WisUploadDao add = new WisUploadDao();
        add.addwis(note);
        response.sendRedirect("page/whisper/manage.jsp");




    }

}

判断文字还是图片

package com.gugu.util;

import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.oreilly.servlet.multipart.FilePart;
import com.oreilly.servlet.multipart.MultipartParser;
import com.oreilly.servlet.multipart.ParamPart;
import com.oreilly.servlet.multipart.Part;

public class Upload {
    public static Map<String, String> upload(HttpServletRequest request,int maxSize, String path) {

        //以map形式保存数据 key对应保存的是获取界面上的name名称 value保存的是获取界面上的name对应的值
        Map<String, String> map = new HashMap<String, String>();
        Part part = null;
        try {
            MultipartParser mrequest = new MultipartParser(request, maxSize);
            mrequest.setEncoding("utf-8");
            //遍历所有的part组
            while ((part = mrequest.readNextPart()) != null) {
                if (part.isFile()) { //判断是否是文件
                    FilePart filepart = (FilePart) part;//转化成文件组
                    String fileName = filepart.getFileName();//得到文件名
                    if (fileName != null && fileName.length() > 0) {
                        // 取得扩展名
                        String fileExtName = fileName.substring(
                                fileName.lastIndexOf(".") + 1).toLowerCase();
                        // 只上传图片 //判断图片上传的格式是否符合 后缀名是否有效
                        if (fileExtName.equalsIgnoreCase("jpeg")
                                || fileExtName.equalsIgnoreCase("png")
                                || fileExtName.equalsIgnoreCase("jpg")
                                || fileExtName.equalsIgnoreCase("gif")
                                || fileExtName.equalsIgnoreCase("ico")
                                || fileExtName.equalsIgnoreCase("bmp")
                                || fileExtName.equalsIgnoreCase("flv")
                                || fileExtName.equalsIgnoreCase("mp4")
                                || fileExtName.equalsIgnoreCase("mp3")) {
                            /*String newFileName = new Date().getTime() + "."+ fileExtName;//重新改文件名 文件名+扩展名 */

                            String newFileName =new Date().getTime() +fileName;//不改图片名字

                            String newPath = path + "/" + newFileName; //文件处理文件上传的路径

                            File newFile = new File(newPath);

                            filepart.writeTo(newFile); //将文件真正写入到对应的文件夹中

                            //filepart.getName() 得到 request 要接收的参数的名字
                            map.put("newFileName", newFileName);
                            map.put(filepart.getName(), newFileName);//把文件信息保存到map中
                            map.put("newFile", newFile.toString());
                        } else {
                            map.put("geshi", "geshi");
                            continue;
                        }// 说明上传的不是图片
                    } else {
                        map.put("yes","yes");
                        continue; // 说明没有选择上传图片
                    }

                } else if (part.isParam()) { //判断是否是参数
                    ParamPart paramPart = (ParamPart) part;

                    map.put(paramPart.getName(), paramPart.getStringValue());
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return map;
    }
}

上传到数据库的文字内容为null 图片保存路劲也为null请问是那部分出错了

控制台报错


java.io.FileNotFoundException: C:\Users\12874\Desktop\毕业设计\MyBlog-master\WebContent\images\images\1572883296157tony_tony_chopper-006.jpg (系统找不到指定的路径。)
    at java.io.FileOutputStream.open0(Native Method)
    at java.io.FileOutputStream.open(Unknown Source)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at com.oreilly.servlet.multipart.FilePart.writeTo(FilePart.java:166)
    at com.gugu.util.Upload.upload(Upload.java:50)
    at com.gugu.servlet.PicUpServlet.doPost(PicUpServlet.java:40)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)
images\null
null
  • 写回答

2条回答 默认 最新

  • 小哆先生 2019-11-04 23:08
    关注

    把你的路径和文件名在查看一下

    评论

报告相同问题?

悬赏问题

  • ¥15 求.net core 几款免费的pdf编辑器
  • ¥20 SQL server表计算问题
  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)