用JSP文件上傳,下載的一些方法,Java實(shí)現(xiàn)文件分片上傳、大文件秒傳,大文件如何做斷點(diǎn)續(xù)傳?JAVAWEB 文件上傳及下載,JAVA大文件上傳,大文件下載解決方案,JAVA實(shí)現(xiàn)文件分片上傳并且斷點(diǎn)續(xù)傳,JAVA大文件分片上傳/多線程上傳功能,超大文件上傳和斷點(diǎn)續(xù)傳的控件,JAVA實(shí)現(xiàn)瀏覽器端大文件分片上傳,JAVA實(shí)現(xiàn)大文件上傳,JAVA WEB 實(shí)現(xiàn)文件上傳和下載接口功能,
百度webuploader上傳文件到服務(wù)器指定文件夾問(wèn)題,webuploader上傳文件到服務(wù)器指定文件夾問(wèn)題,JSP上傳文件到服務(wù)器指定文件夾問(wèn)題,JAVA上傳大文件實(shí)現(xiàn)源代碼,JAVA上傳大文件實(shí)現(xiàn)源碼,JAVA上傳大文件實(shí)現(xiàn)代碼,JAVA上傳大文件實(shí)現(xiàn)技巧,JAVA上傳大文件實(shí)現(xiàn)技術(shù),JAVA上傳大文件實(shí)現(xiàn)思路,JAVA上傳大文件實(shí)現(xiàn)解決方案,
前端上傳大文件實(shí)現(xiàn)方案,js上傳大文件實(shí)現(xiàn)方法,JavaScript上傳大文件實(shí)現(xiàn)方法,vue上傳大文件實(shí)現(xiàn)方法,前端上傳大文件實(shí)現(xiàn)方法,html上傳大文件實(shí)現(xiàn)方法,html5上傳大文件實(shí)現(xiàn)方法,百度webuploader上傳大文件實(shí)現(xiàn)方法,webuploader上傳大文件實(shí)現(xiàn)方法,JAVA上傳大文件實(shí)現(xiàn)方法,
網(wǎng)上也搜過(guò)相關(guān)的解決方案,論壇里面也有網(wǎng)友交流,但是都不太令人滿意,與實(shí)際的需求需求也相差太遠(yuǎn)??梢哉f(shuō)是完全不能滿足公司這邊的項(xiàng)目需求。公司項(xiàng)目這塊實(shí)際上是需要一個(gè)成熟的商業(yè)解決方案。
大文件上傳的話基本上都是分片來(lái)傳,網(wǎng)上很多文章講的不能說(shuō)亂七八糟只能說(shuō)完全沒用。
JAVA的話主要是負(fù)責(zé)后端的接口,業(yè)務(wù)邏輯,功能的實(shí)現(xiàn),比如文件初始化,文件分塊,文件塊合并,文件信息的查詢等。
客戶這個(gè)項(xiàng)目跟了很長(zhǎng)時(shí)間了,大概有2年了。實(shí)際上客戶并不在意使用哪種技術(shù),只在乎兩點(diǎn)。
文件比較大,有50G左右,用戶希望能夠在網(wǎng)頁(yè)里面直接上傳,一期的時(shí)候我們是直接用的HTML5的API,也就是chrome提供的API來(lái)做的,但是上線后用戶反饋不是特別的好用,用戶那邊有些電腦用的是WIN7+IE9,chrome的API在ie9里面不支持。但是用戶系統(tǒng)是支持的,這就把人整的有點(diǎn)不會(huì)了。二期的時(shí)候我們還是定制開發(fā)了,
前端用了JSP,VUE2,VUE3,后端用了JSP,SpringBoot,IDE用了Eclipse,MyEclipse,因?yàn)樾马?xiàng)目和老項(xiàng)目都用了兩種IDE。
用戶要求能夠在網(wǎng)頁(yè)上面上傳文件夾,文件夾里面大約有1萬(wàn)多個(gè)文件,有大有小,大的有1G~10G,小的有幾MB,文件夾上傳的時(shí)候需要保存層級(jí)結(jié)構(gòu),同時(shí)能夠?qū)蛹?jí)結(jié)構(gòu)信息保存到數(shù)據(jù)庫(kù)中,同時(shí)還需要支持文件夾下載,下載下來(lái)的文件夾要和上傳的文件夾層級(jí)結(jié)構(gòu)一模一樣??蛻裘刻於紩?huì)傳輸一些資料,功能這塊使用頻率非常高。
要求支持?jǐn)帱c(diǎn)續(xù)傳,支持進(jìn)度信息離線存儲(chǔ),用戶可能傳一半沒有傳完,下班了,明天上班后繼續(xù)上傳,電腦晚上到點(diǎn)需要關(guān)機(jī),支持加密傳輸,支持國(guó)密加密算法SM4,要求支持下載,支持非打包方式下載,瀏覽器要求支持包含IE在內(nèi)的所有瀏覽器,
系統(tǒng)環(huán)境要求支持信創(chuàng)國(guó)產(chǎn)化,比如銀河麒麟,中標(biāo)麒麟,統(tǒng)信UOS,龍芯,數(shù)據(jù)庫(kù)支持MySQL,Oracle,達(dá)夢(mèng)數(shù)據(jù)庫(kù),人大金倉(cāng),需要提供前端源碼,后端源碼,控件源碼,公司自己的項(xiàng)目,也有自己的產(chǎn)品,后續(xù)需要集成使用,
要求提供7*24小時(shí)技術(shù)支持服務(wù),提供文檔教程,視頻教程,遠(yuǎn)程技術(shù)指導(dǎo),1對(duì)1技術(shù)支持服務(wù),提供手機(jī),微信,QQ,郵箱,企業(yè)微信等聯(lián)系方式。導(dǎo)入項(xiàng)目:
導(dǎo)入到Eclipse:http://www.ncmem.com/doc/view.aspx?id=9da9c7c2b91b40b7b09768eeb282e647
導(dǎo)入到IDEA:http://www.ncmem.com/doc/view.aspx?id=9fee385dfc0742448b56679420f22162
springboot統(tǒng)一配置:http://www.ncmem.com/doc/view.aspx?id=7768eec9284b48e3abe08f032f554ea2
下載示例:
https://gitee.com/xproer/up6-jsp-eclipse/tree/6.5.40/
工程
NOSQL
NOSQL示例不需要任何配置,可以直接訪問(wèn)測(cè)試
創(chuàng)建數(shù)據(jù)表
選擇對(duì)應(yīng)的數(shù)據(jù)表腳本,這里以SQL為例
修改數(shù)據(jù)庫(kù)連接信息
訪問(wèn)頁(yè)面進(jìn)行測(cè)試
文件存儲(chǔ)路徑
up6/upload/年/月/日/guid/filename
相關(guān)問(wèn)題:
1.javax.servlet.http.HttpServlet錯(cuò)誤
2.項(xiàng)目無(wú)法發(fā)布到tomcat
3.md5計(jì)算完畢后卡住
4.服務(wù)器找不到config.json文件
相關(guān)參考:
文件保存位置
源碼工程文檔:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra
源碼報(bào)價(jià)單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl
OEM版報(bào)價(jià)單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a
控件源碼下載:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc
們可以使用 Eclipse 來(lái)搭建 JSP 開發(fā)環(huán)境,首先我們分別下載一下軟件包:
Eclipse J2EE:http://www.eclipse.org/downloads/
Tomcat:http://tomcat.apache.org/download-70.cgi
Tomcat 下載安裝
你可以根據(jù)你的系統(tǒng)下載對(duì)應(yīng)的包(以下以Window系統(tǒng)為例):
下載之后,將壓縮包解壓到D盤(你可以自己選擇):
注意目錄名不能有中文和空格。目錄介紹如下:
bin:二進(jìn)制執(zhí)行文件。里面最常用的文件是startup.bat,如果是 Linux 或 Mac 系統(tǒng)啟動(dòng)文件為 startup.sh。
conf:配置目錄。里面最核心的文件是server.xml。可以在里面改端口號(hào)等。默認(rèn)端口號(hào)是8080,也就是說(shuō),此端口號(hào)不能被其他應(yīng)用程序占用。
lib:庫(kù)文件。tomcat運(yùn)行時(shí)需要的jar包所在的目錄
logs:日志
temp:臨時(shí)產(chǎn)生的文件,即緩存
webapps:web的應(yīng)用程序。web應(yīng)用放置到此目錄下瀏覽器可以直接訪問(wèn)
work:編譯以后的class文件。
接著我們可以雙擊 startup.bat 啟動(dòng) Tomcat,彈出如下界面:
這個(gè)時(shí)候,本地的服務(wù)器就已經(jīng)搭建起來(lái)了。如果想關(guān)閉服務(wù)器,可以直接關(guān)閉上面的窗口,或者在里面輸入Ctrl+C禁止服務(wù)。
接著我們?cè)跒g覽器中輸入 http://localhost:8080/,如果彈出如下界面,表示tomcat安裝成功并且啟動(dòng)起來(lái)了:
我們現(xiàn)在在瀏覽器上測(cè)試一下它吧:
首先在D:\apache-tomcat-8.0.14\webapps\ROOT目錄中新建一個(gè)jsp文件:
test.jsp 文件代碼如下:
<%@ page contentType="text/html;charset=UTF-8" %><%out.print("菜鳥教程 : http://www.runoob.com");%>
接著在瀏覽器中訪問(wèn)地址 http://localhost:8080/test.jsp, 輸出結(jié)果如下:
將 Tomcat 和 Eclipse 相關(guān)聯(lián)
Eclipse J2EE下載后,解壓即可使用,我們打開Java EE ,選擇菜單欄Windows-->preferences(Mac 系統(tǒng)為 Eclipse-->偏好設(shè)置),彈出如下界面:
上圖中,點(diǎn)擊"add"的添加按鈕,彈出如下界面:
在選項(xiàng)中,我們選擇對(duì)應(yīng)的 Tomcat 版本,接著點(diǎn)擊 "Next",選擇 Tomcat 的安裝目錄,并選擇我們安裝的 Java 環(huán)境:
點(diǎn)擊 "Finish",完成配置。
創(chuàng)建實(shí)例
選擇 "File-->New-->Dynamic Web Project",創(chuàng)建 TomcatTest 項(xiàng)目:
點(diǎn)開上圖中的紅框部分,彈出如下界面:
注意如果已默認(rèn)選擇了我們之前安裝的 Tomcat 和 JDK 則可跳過(guò)此步。
然后,單擊finish, 繼續(xù):
工程文件結(jié)構(gòu):
上圖中各個(gè)目錄解析:
deployment descriptor:部署的描述。
Web App Libraries:自己加的包可以放在里面。
build:放入編譯之后的文件。
WebContent:放進(jìn)寫入的頁(yè)面。
在WebContent文件夾下新建一個(gè)test.jsp文件。在下圖中可以看到它的默認(rèn)代碼:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body></body></html>
接著我們修改下test.jsp文件代碼如下所示:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>菜鳥教程</title></head><body><% out.println("Hello World!");%></body></html>
程序運(yùn)行之前,我們先修改一下瀏覽器選項(xiàng):
接著我們運(yùn)行該項(xiàng)目:
運(yùn)行時(shí),彈出如下錯(cuò)誤:(如果沒有此錯(cuò)誤,請(qǐng)忽略)
原因是,我們之前點(diǎn)擊了Tomcat安裝包中的startup.bat,這樣一來(lái)就手動(dòng)打開了Tomcat服務(wù)器,這明顯是多余的,因?yàn)槌绦蜻\(yùn)行時(shí),eclipse會(huì)自動(dòng)開啟Tomcat服務(wù)器。所以我們先手動(dòng)關(guān)掉tomcat軟件,再次運(yùn)行程序,就行了??刂婆_(tái)信息如下:
瀏覽器訪問(wèn) http://localhost:8080/TomcatTest/test.jsp, 即可輸出正常結(jié)果:
Servlet 實(shí)例創(chuàng)建
我們也可以使用以上環(huán)境創(chuàng)建 Servlet 文件,選擇 "File-->New-->Servlet":
位于 TomcatTest項(xiàng)目的 /TomcatTest/src 目錄下創(chuàng)建 "HelloServlet" 類,包為 "com.runoob.test":
HelloServlet.java 代碼如下所示:
package com.runoob.test;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class HelloServlet */@WebServlet("/HelloServlet")public class HelloServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public HelloServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 使用 GBK 設(shè)置中文正常顯示 response.setCharacterEncoding("GBK"); response.getWriter().write("菜鳥教程:http://www.runoob.com"); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); }}
創(chuàng)建 /TomcatTest/WebContent/WEB-INF/web.xml 文件(如果沒有),代碼如下所示:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <!-- 類名 --> <servlet-name>HelloServlet</servlet-name> <!-- 所在的包 --> <servlet-class>com.runoob.test.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <!-- 訪問(wèn)的網(wǎng)址 --> <url-pattern>/TomcatTest/HelloServlet</url-pattern> </servlet-mapping> </web-app>
接著重啟 Tomcat,瀏覽器訪問(wèn) http://localhost:8080/TomcatTest/HelloServlet:
件比較大,有50G左右,用戶希望能夠在網(wǎng)頁(yè)里面直接上傳,一期的時(shí)候我們是直接用的HTML5的API,也就是chrome提供的API來(lái)做的,但是上線后用戶反饋不是特別的好用,用戶那邊有些電腦用的是WIN7+IE9,chrome的API在ie9里面不支持。但是用戶系統(tǒng)是支持的,這就把人整的有點(diǎn)不會(huì)了。二期的時(shí)候我們還是定制開發(fā)了,
前端用了JSP,VUE2,VUE3,后端用了JSP,SpringBoot,IDE用了Eclipse,MyEclipse,因?yàn)樾马?xiàng)目和老項(xiàng)目都用了兩種IDE。
用戶要求能夠在網(wǎng)頁(yè)上面上傳文件夾,文件夾里面大約有1萬(wàn)多個(gè)文件,有大有小,大的有1G~10G,小的有幾MB,文件夾上傳的時(shí)候需要保存層級(jí)結(jié)構(gòu),同時(shí)能夠?qū)蛹?jí)結(jié)構(gòu)信息保存到數(shù)據(jù)庫(kù)中,同時(shí)還需要支持文件夾下載,下載下來(lái)的文件夾要和上傳的文件夾層級(jí)結(jié)構(gòu)一模一樣。要求支持?jǐn)帱c(diǎn)續(xù)傳,支持進(jìn)度信息離線存儲(chǔ),用戶可能傳一半沒有傳完,下班了,明天上班后繼續(xù)上傳,電腦晚上到點(diǎn)需要關(guān)機(jī),支持加密傳輸,支持國(guó)密加密算法SM4,要求支持下載,支持非打包方式下載,瀏覽器要求支持包含IE在內(nèi)的所有瀏覽器,系統(tǒng)環(huán)境要求支持信創(chuàng)國(guó)產(chǎn)化,比如銀河麒麟,中標(biāo)麒麟,統(tǒng)信UOS,龍芯,數(shù)據(jù)庫(kù)支持MySQL,Oracle,達(dá)夢(mèng)數(shù)據(jù)庫(kù),人大金倉(cāng),需要提供前端源碼,后端源碼,控件源碼,公司自己的項(xiàng)目,也有自己的產(chǎn)品,后續(xù)需要集成使用,提供7*24小時(shí)技術(shù)支持服務(wù),提供文檔教程,視頻教程,遠(yuǎn)程技術(shù)指導(dǎo),1對(duì)1技術(shù)支持服務(wù),提供手機(jī),微信,QQ,郵箱,企業(yè)微信等聯(lián)系方式。
導(dǎo)入項(xiàng)目:
導(dǎo)入到Eclipse:http://www.ncmem.com/doc/view.aspx?id=9da9c7c2b91b40b7b09768eeb282e647
導(dǎo)入到IDEA:http://www.ncmem.com/doc/view.aspx?id=9fee385dfc0742448b56679420f22162
springboot統(tǒng)一配置:http://www.ncmem.com/doc/view.aspx?id=7768eec9284b48e3abe08f032f554ea2
下載示例:
https://gitee.com/xproer/up6-jsp-eclipse/tree/6.5.40/
工程
NOSQL
NOSQL示例不需要任何配置,可以直接訪問(wèn)測(cè)試
創(chuàng)建數(shù)據(jù)表
選擇對(duì)應(yīng)的數(shù)據(jù)表腳本,這里以SQL為例
修改數(shù)據(jù)庫(kù)連接信息
訪問(wèn)頁(yè)面進(jìn)行測(cè)試
文件存儲(chǔ)路徑
up6/upload/年/月/日/guid/filename
相關(guān)問(wèn)題:
1.javax.servlet.http.HttpServlet錯(cuò)誤
2.項(xiàng)目無(wú)法發(fā)布到tomcat
3.md5計(jì)算完畢后卡住
4.服務(wù)器找不到config.json文件
相關(guān)參考:
文件保存位置
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。