真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

頁(yè)面上傳文件java代碼,頁(yè)面上傳文件java代碼

在jsp頁(yè)面上怎么用Java語(yǔ)言實(shí)現(xiàn)圖片上傳

---upload.jsp

成都創(chuàng)新互聯(lián)公司成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)網(wǎng)站開(kāi)發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計(jì),自適應(yīng)網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì)師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:028-86922220

%@ page language="java" import="java.util.*" pageEncoding="utf-8"%

%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%

%@ page contentType="text/html;charset=gb2312"%

htmltitle%= application.getServerInfo() %/title

body

上傳文件

form action="doUpload.jsp" method="post" enctype="multipart/form-data"

%--?類型enctype用multipart/form-data,

這樣可以把文件中的數(shù)據(jù)作為流式數(shù)據(jù)上傳,不管是什么文件類型,均可上傳。--%

請(qǐng)選擇要上傳的文件

input type="file" name="upfile" size="50"

input type="submit" value="提交"

/form/body

/html

----doUpload.jsp

%@ page language="java" import="java.util.*" pageEncoding="utf-8"%

%

String path = request.getContextPath();

String basePath = request.getScheme() + "://"

+ request.getServerName() + ":" + request.getServerPort()

+ path + "/";

%

%@ page contentType="text/html; charset=GBK"%

%@ page import="java.io.*"%

%@ page import="java.util.*"%

%@ page import="javax.servlet.*"%

%@ page import="javax.servlet.http.*"%

html

head

titleupFile/title

/head

body bgcolor="#ffffff"

%

//定義上載文件的最大字節(jié)

int MAX_SIZE = 102400 * 102400;

//創(chuàng)建根路徑的保存變量

String rootPath;

//聲明文件讀入類

DataInputStream in = null;

FileOutputStream fileOut = null;

//取得客戶端的網(wǎng)絡(luò)地址

String remoteAddr = request.getRemoteAddr();

//獲得服務(wù)器的名字

String serverName = request.getServerName();

//取得互聯(lián)網(wǎng)程序的絕對(duì)地址

String realPath = request.getRealPath(serverName);

realPath = realPath.substring(0, realPath.lastIndexOf("\\"));

//創(chuàng)建文件的保存目錄

rootPath = realPath + "\\upload\\";

//取得客戶端上傳的數(shù)據(jù)類型

String contentType = request.getContentType();

try {

if (contentType.indexOf("multipart/form-data") = 0) {

//讀入上傳的數(shù)據(jù)

in = new DataInputStream(request.getInputStream());

int formDataLength = request.getContentLength();

if (formDataLength MAX_SIZE) {

out.println("P上傳的文件字節(jié)數(shù)不可以超過(guò)" + MAX_SIZE + "/p");

return;

}

//保存上傳文件的數(shù)據(jù)

byte dataBytes[] = new byte[formDataLength];

int byteRead = 0;

int totalBytesRead = 0;

//上傳的數(shù)據(jù)保存在byte數(shù)組

while (totalBytesRead formDataLength) {

byteRead = in.read(dataBytes, totalBytesRead,

formDataLength);

totalBytesRead += byteRead;

}

//根據(jù)byte數(shù)組創(chuàng)建字符串

String file = new String(dataBytes);

//out.println(file);

//取得上傳的數(shù)據(jù)的文件名

String 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("=");

//取得數(shù)據(jù)的分隔字符串

String boundary = contentType.substring(lastIndex + 1,

contentType.length());

//創(chuàng)建保存路徑的文件名

String fileName = rootPath + saveFile;//out.print(fileName);

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(boundary, pos) - 4;

//out.println(boundaryLocation);

//取得文件數(shù)據(jù)的開(kāi)始的位置

int startPos = ((file.substring(0, pos)).getBytes()).length;

//out.println(startPos);

//取得文件數(shù)據(jù)的結(jié)束的位置

int endPos = ((file.substring(0, boundaryLocation))

.getBytes()).length;

//out.println(endPos);

//檢查上載文件是否存在

File checkFile = new File(fileName);

if (checkFile.exists()) {

out.println("p" + saveFile + "文件已經(jīng)存在./p");

}

//檢查上載文件的目錄是否存在

File fileDir = new File(rootPath);

if (!fileDir.exists()) {

fileDir.mkdirs();

}

//創(chuàng)建文件的寫出類

fileOut = new FileOutputStream(fileName);

//保存文件的數(shù)據(jù)

fileOut.write(dataBytes, startPos, (endPos - startPos));

fileOut.close();

out.println(saveFile + "文件成功上載./p");

request.getSession().setAttribute("fileName",saveFile);

} else {

String content = request.getContentType();

out.println("p上傳的數(shù)據(jù)類型不是multipart/form-data/p");

}

} catch (Exception ex) {

throw new ServletException(ex.getMessage());

}

%

/body

/html

JAVA WEB文件上傳步驟

JAVA WEB文件上傳步驟如下:

實(shí)現(xiàn) Web 開(kāi)發(fā)中的文件上傳功能,兩個(gè)操作:在 Web 頁(yè)面添加上傳輸入項(xiàng),在 Servlet 中讀取上傳文件的數(shù)據(jù)并保存在本地硬盤中。

1、Web 端上傳文件。在 Web 頁(yè)面中添加上傳輸入項(xiàng):input type="file" 設(shè)置文件上傳輸入項(xiàng)時(shí)應(yīng)注意:(1) 必須設(shè)置 input 輸入項(xiàng)的 name 屬性,否則瀏覽器將不會(huì)發(fā)送上傳文件的數(shù)據(jù)。(2) 必須把 form 的 enctype 屬性設(shè)為 multipart/form-data,設(shè)置該值后,瀏覽器在上傳文件時(shí),將把文件數(shù)據(jù)附帶在 http 請(qǐng)求消息體中,并使用 MIME 協(xié)議對(duì)上傳文件進(jìn)行描述,以方便接收方對(duì)上傳數(shù)據(jù)進(jìn)行解析和處理。(3) 表單提交的方式要是 post

2、服務(wù)器端獲取文件。如果提交表單的類型為 multipart/form-data 時(shí),就不能采用傳統(tǒng)方式獲取數(shù)據(jù)。因?yàn)楫?dāng)表單類型為 multipart/form-data 時(shí),瀏覽器會(huì)將數(shù)據(jù)以 MIME 協(xié)議的形式進(jìn)行描述。如果想在服務(wù)器端獲取數(shù)據(jù),那么我們必須采用獲取請(qǐng)求消息輸入流的方式來(lái)獲取數(shù)據(jù)。

3、Apache-Commons-fileupload。為了方便用戶處理上傳數(shù)據(jù),Apache 提供了一個(gè)用來(lái)處理表單文件上傳的開(kāi)源組建。使用 Commons-fileupload 需要 Commons-io 包的支持。

4、fileuplpad 組建工作流程

(1)客戶端將數(shù)據(jù)封裝在 request 對(duì)象中。

(2)服務(wù)器端獲取到 request 對(duì)象。

(3)創(chuàng)建解析器工廠 DiskFileItemFactory 。

(4)創(chuàng)建解析器,將解析器工廠放入解析器構(gòu)造函數(shù)中。之后解析器會(huì)對(duì) request 進(jìn)行解析。

(5)解析器會(huì)將每個(gè)表單項(xiàng)封裝為各自對(duì)應(yīng)的 FileItem。

(6)判斷代表每個(gè)表單項(xiàng)的 FileItem 是否為普通表單項(xiàng) isFormField,返回 true 為普通表單項(xiàng)。

(7)如果是普通表單項(xiàng),通過(guò) getFieldName 獲取表單項(xiàng)名,getString 獲得表單項(xiàng)值。

(8)如果 isFormField 返回 false 那么是用戶要上傳的數(shù)據(jù),可以通過(guò) getInputStream 獲取上傳文件的數(shù)據(jù)。通過(guò)getName 可以獲取上傳的文件名。

java怎么實(shí)現(xiàn)視頻上傳

方法/步驟

1

首先這里jsp頁(yè)面的代碼 定義布局文件html的 如圖所示

這是js文件 打開(kāi)一個(gè)新子窗口和向頁(yè)面中加載視頻播放標(biāo)簽

上傳文件java代碼 獲取時(shí)間轉(zhuǎn)換成字符串作為上傳之后的文件名以及設(shè)置保存路徑和傳值到j(luò)sp頁(yè)面

這里copy代碼 將一個(gè)源文件復(fù)制到新的目錄路徑下 如圖所示

這里upload的jsp文件 用來(lái)選擇視頻文件并提交給后臺(tái)

展示舊文件名新文件名和上傳后的文件目錄路徑 并將其傳給父頁(yè)面即index.jsp

upload.jsp文件提交的代碼經(jīng)過(guò)java文件處理后通過(guò)控制轉(zhuǎn)到upload_video.jsp

代碼片段已經(jīng)貼出來(lái)了,接下來(lái)我們開(kāi)始演示界面 打開(kāi)后如圖所示 點(diǎn)擊上傳按鈕

點(diǎn)擊選擇文件 找到要上傳的視頻文件 選中后選擇打開(kāi) 然后點(diǎn)擊確定按鈕

這里就是顯示新舊文件名和文件目錄路徑的界面 點(diǎn)擊確定將文件目錄傳給父文件界面

如圖所示 目錄路徑已經(jīng)出給input中了 點(diǎn)擊播放按鈕 就會(huì)出現(xiàn)播放界面并且自動(dòng)播放了

java怎么實(shí)現(xiàn)上傳文件到服務(wù)器

common-fileupload是jakarta項(xiàng)目組開(kāi)發(fā)的一個(gè)功能很強(qiáng)大的上傳文件組件

下面先介紹上傳文件到服務(wù)器(多文件上傳):

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.*;

import java.util.regex.*;

import org.apache.commons.fileupload.*;

public class upload extends HttpServlet {

private static final String CONTENT_TYPE = "text/html; charset=GB2312";

//Process the HTTP Post request

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

response.setContentType(CONTENT_TYPE);

PrintWriter out=response.getWriter();

try {

DiskFileUpload fu = new DiskFileUpload();

// 設(shè)置允許用戶上傳文件大小,單位:字節(jié),這里設(shè)為2m

fu.setSizeMax(2*1024*1024);

// 設(shè)置最多只允許在內(nèi)存中存儲(chǔ)的數(shù)據(jù),單位:字節(jié)

fu.setSizeThreshold(4096);

// 設(shè)置一旦文件大小超過(guò)getSizeThreshold()的值時(shí)數(shù)據(jù)存放在硬盤的目錄

fu.setRepositoryPath("c://windows//temp");

//開(kāi)始讀取上傳信息

List fileItems = fu.parseRequest(request);

// 依次處理每個(gè)上傳的文件

Iterator iter = fileItems.iterator();

//正則匹配,過(guò)濾路徑取文件名

String regExp=".+////(.+)$";

//過(guò)濾掉的文件類型

String[] errorType={".exe",".com",".cgi",".asp"};

Pattern p = Pattern.compile(regExp);

while (iter.hasNext()) {

?FileItem item = (FileItem)iter.next();

?//忽略其他不是文件域的所有表單信息

?if (!item.isFormField()) {

? ? ?String name = item.getName();

? ? ?long size = item.getSize();

? ? ?if((name==null||name.equals("")) size==0)

? ? ? ? ?continue;

?Matcher m = p.matcher(name);

?boolean result = m.find();

?if (result){

? ? ?for (int temp=0;tempERRORTYPE.LENGTH;TEMP++){

? ? ?if (m.group(1).endsWith(errorType[temp])){

? ? ? ? ? ?throw new IOException(name+": wrong type");

? ? ?}

? ? ?}

? ? ?try{

//保存上傳的文件到指定的目錄

//在下文中上傳文件至數(shù)據(jù)庫(kù)時(shí),將對(duì)這里改寫

? ? ?item.write(new File("d://" + m.group(1)));

out.print(name+" ?"+size+"");

? ? ?}

? ? ?catch(Exception e){

? ? ? ?out.println(e);

? ? ?}

}

?else

?{

? ?throw new IOException("fail to upload");

?}

?}

}

}

catch (IOException e){

out.println(e);

}

catch (FileUploadException e){

out.println(e);

}

}

}

現(xiàn)在介紹上傳文件到服務(wù)器,下面只寫出相關(guān)代碼:

以sql2000為例,表結(jié)構(gòu)如下:

字段名:name ? ?filecode

類型: varchar ? ? image

數(shù)據(jù)庫(kù)插入代碼為:PreparedStatement pstmt=conn.prepareStatement("insert into test values(?,?)");

代碼如下:

。。。。。。

try{

? 這段代碼如果不去掉,將一同寫入到服務(wù)器中

? //item.write(new File("d://" + m.group(1)));

? ? ?

? int byteread=0;

? //讀取輸入流,也就是上傳的文件內(nèi)容

? InputStream inStream=item.getInputStream(); ? ? ? ? ? ?

pstmt.setString(1,m.group(1));

? pstmt.setBinaryStream(2,inStream,(int)size);

? pstmt.executeUpdate();

? inStream.close();

out.println(name+" ?"+size+" ");

? }

。。。。。。

這樣就實(shí)現(xiàn)了上傳文件至數(shù)據(jù)庫(kù)

如何用java程序?qū)崿F(xiàn)上傳文件到指定的URL地址

參考代碼如下:

import java.io.*;

/**

* 復(fù)制文件夾或文件夾

*/

public class CopyDirectory {

// 源文件夾

static String url1 = "f:/photos";

// 目標(biāo)文件夾

static String url2 = "d:/tempPhotos";

public static void main(String args[]) throws IOException {

// 創(chuàng)建目標(biāo)文件夾

(new File(url2)).mkdirs();

// 獲取源文件夾當(dāng)前下的文件或目錄

File[] file = (new File(url1)).listFiles();

for (int i = 0; i file.length; i++) {

if (file[i].isFile()) {

// 復(fù)制文件

copyFile(file[i],new File(url2+file[i].getName()));

}

if (file[i].isDirectory()) {

// 復(fù)制目錄

String sourceDir=url1+File.separator+file[i].getName();

String targetDir=url2+File.separator+file[i].getName();

copyDirectiory(sourceDir, targetDir);

}

}

}

// 復(fù)制文件

public static void copyFile(File sourceFile,File targetFile)

throws IOException{

// 新建文件輸入流并對(duì)它進(jìn)行緩沖

FileInputStream input = new FileInputStream(sourceFile);

BufferedInputStream inBuff=new BufferedInputStream(input);

// 新建文件輸出流并對(duì)它進(jìn)行緩沖

FileOutputStream output = new FileOutputStream(targetFile);

BufferedOutputStream outBuff=new BufferedOutputStream(output);

// 緩沖數(shù)組

byte[] b = new byte[1024 * 5];

int len;

while ((len =inBuff.read(b)) != -1) {

outBuff.write(b, 0, len);

}

// 刷新此緩沖的輸出流

outBuff.flush();

//關(guān)閉流

inBuff.close();

outBuff.close();

output.close();

input.close();

}

// 復(fù)制文件夾

public static void copyDirectiory(String sourceDir, String targetDir)

throws IOException {

// 新建目標(biāo)目錄

(new File(targetDir)).mkdirs();

// 獲取源文件夾當(dāng)前下的文件或目錄

File[] file = (new File(sourceDir)).listFiles();

for (int i = 0; i file.length; i++) {

if (file[i].isFile()) {

// 源文件

File sourceFile=file[i];

// 目標(biāo)文件

File targetFile=new

File(new File(targetDir).getAbsolutePath()

+File.separator+file[i].getName());

copyFile(sourceFile,targetFile);

}

if (file[i].isDirectory()) {

// 準(zhǔn)備復(fù)制的源文件夾

String dir1=sourceDir + "/" + file[i].getName();

// 準(zhǔn)備復(fù)制的目標(biāo)文件夾

String dir2=targetDir + "/"+ file[i].getName();

copyDirectiory(dir1, dir2);

}

}

}

}

java 文件上傳的代碼,盡量詳細(xì)一點(diǎn)。。。

// 這是我寫的一個(gè)方法,里面只需要傳兩個(gè)參數(shù)就OK了,在任何地方調(diào)用此方法都可以文件上傳

/**

* 上傳文件

* @param file待上傳的文件

* @param storePath待存儲(chǔ)的路徑(該路徑還包括文件名)

*/

public void uploadFormFile(FormFile file,String storePath)throws Exception{

// 開(kāi)始上傳

InputStream is =null;

OutputStream os =null;

try {

is = file.getInputStream();

os = new FileOutputStream(storePath);

int bytes = 0;

byte[] buffer = new byte[8192];

while ((bytes = is.read(buffer, 0, 8192)) != -1) {

os.write(buffer, 0, bytes);

}

os.close();

is.close();

} catch (Exception e) {

throw e;

}

finally{

if(os!=null){

try{

os.close();

os=null;

}catch(Exception e1){

;

}

}

if(is!=null){

try{

is.close();

is=null;

}catch(Exception e1){

;

}

}

}

}


新聞標(biāo)題:頁(yè)面上傳文件java代碼,頁(yè)面上傳文件java代碼
轉(zhuǎn)載注明:http://weahome.cn/article/hshhph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部