public class FileUpLoad extends ActionSupport{
創(chuàng)新互聯(lián)建站專注于桃江網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供桃江營銷型網(wǎng)站建設,桃江網(wǎng)站制作、桃江網(wǎng)頁設計、桃江網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務,打造桃江網(wǎng)絡公司原創(chuàng)品牌,更為您提供桃江網(wǎng)站排名全網(wǎng)營銷落地服務。
//"多文件上傳就用list就可以了private ListFile file;"
private File file;
//上傳文本的name
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
private String fileContentType;
//上傳的文件類型。
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
//獲取上傳文件的名稱
private String fileFileName;
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public String upload() throws Exception
{
//獲取文件上傳路徑
String root=ServletActionContext.getRequest().getRealPath("/upload");
InputStream is=new FileInputStream(file);
String.substring(fileFileName.indexOf("."));//截取上傳文件的后綴。便于新定義名稱。.jpg
System.out.println(name);
File descFile=new File(root,新定義的文件名稱+fileFileName.indexOf("."));
OutputStream os=new FileOutputStream(descFile);
byte[] buffer=new byte[1024];
int length=0;
while(-1!=(length=(is.read(buffer))))
{
os.write(buffer, 0, length);
}
is.close();
os.close();
return SUCCESS;
}
}
文件從本地到服務器的功能,其實是為了解決目前瀏覽器不支持獲取本地文件全路徑。不得已而想到上傳到服務器的固定目錄,從而方便項目獲取文件,進而使程序支持EXCEL批量導入數(shù)據(jù)。
java中文件上傳到服務器的指定路徑的代碼:
在前臺界面中輸入:
form method="post" enctype="multipart/form-data" ?action="../manage/excelImport.do"
請選文件:input type="file" ?name="excelFile"
input type="submit" value="導入" onclick="return impExcel();"/
/form
action中獲取前臺傳來數(shù)據(jù)并保存
/**
* excel 導入文件
* @return
* @throws IOException
*/
@RequestMapping("/usermanager/excelImport.do")
public String excelImport(
String filePath,
MultipartFile ?excelFile,HttpServletRequest request) throws IOException{
log.info("action:{} Method:{} start","usermanager","excelImport" );
if (excelFile != null){
String filename=excelFile.getOriginalFilename();
String a=request.getRealPath("u/cms/www/201509");
SaveFileFromInputStream(excelFile.getInputStream(),request.getRealPath("u/cms/www/201509"),filename);//保存到服務器的路徑
}
log.info("action:{} Method:{} end","usermanager","excelImport" );
return "";
}
/**
* 將MultipartFile轉化為file并保存到服務器上的某地
*/
public void SaveFileFromInputStream(InputStream stream,String path,String savefile) throws IOException
{ ? ?
FileOutputStream fs=new FileOutputStream( path + "/"+ savefile);
System.out.println("------------"+path + "/"+ savefile);
byte[] buffer =new byte[1024*1024];
int bytesum = 0;
int byteread = 0;
while ((byteread=stream.read(buffer))!=-1)
{
bytesum+=byteread;
fs.write(buffer,0,byteread);
fs.flush();
}
fs.close();
stream.close();
}
// 這是我寫的一個方法,里面只需要傳兩個參數(shù)就OK了,在任何地方調(diào)用此方法都可以文件上傳
/**
* 上傳文件
* @param file待上傳的文件
* @param storePath待存儲的路徑(該路徑還包括文件名)
*/
public void uploadFormFile(FormFile file,String storePath)throws Exception{
// 開始上傳
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){
;
}
}
}
}
文件上傳功能是最基本的 所以需要真正的掌握
Java代碼
=========文件上傳功能================
@Property
private UploadedFile file;
@Inject
private ApplicationGlobals globals;
//獲得絕對路徑
String path = globals getServletContext() getRealPath( /images/person/head );
File copied = new File(path + / + file getFileName());
file write(copied);? //寫入項目
===========js=============
function fileBtn(){
var file=document getElementById( file ) value;
//var houzui=kzName(file);
//獲取文件后綴名并轉成小寫
var ext=file substring(file lastIndexOf( )) toLowerCase();
if( file value== ){
alert( 請選擇上傳的圖片 );
return false;
}else{
if(ext!= gif ext!= jpg ext!= jpeg ext!= bmp ) {
alert( 此圖片類型不支持:[ +ext+ ] );
return false;
}
}
return true;
}
//獲取后綴名
function kzName(u)
{
var s = / [^ ]+$/ exec(u);
return (s!=null)?s[ ]:null;
}
=============file tml================
div id= fileDiv
t:form
圖片上傳
input t:type= upload t:id= file name= file size= /
input type= submit value= 提 交 onclick= return fileBtn(); /
/t:form
! 用來提示信息
divspan id= errormsg t:if t:test= errorCode ${errorMsg}/t:if/span/div
/div
===============file java===相關代碼=============
@Property
private UploadedFile file;
@Persist(PersistenceConstants FLASH)
@Property
private String message;
@Inject
private Messages messages;
@Property
@Persist(value= flash )
private int errorCode;
Object onUploadException(FileUploadException ex)
{
message = Upload exception: + ex getMessage();
return this;
}
//用來在頁面做提示信息
public String getErrorMsg(){
switch (errorCode) {
case :
return messages get( fileNameMsg );
case :
return messages get( fileSuccess );
default:
break;
}
return ;
lishixinzhi/Article/program/Java/hx/201311/25990
import java.io.File;
import java.io.FileInputStream;
import org.apache.commons.net.;
import org.apache.commons.net.;
public class test {
private FTPClient ftp;
/**
*
* @param path 上傳到ftp服務器哪個路徑下
* @param addr 地址
* @param port 端口號
* @param username 用戶名
* @param password 密碼
* @return
* @throws Exception
*/
private boolean connect(String path,String addr,int port,String username,String password) throws Exception {
boolean result = false;
ftp = new FTPClient();
int reply;
;
;
;
reply = ;
if (!FTPReply.isPositiveCompletion(reply)) {
;
return result;
}
;
result = true;
return result;
}
/**
*
* @param file 上傳的文件或文件夾
* @throws Exception
*/
private void upload(File file) throws Exception{
if(file.isDirectory()){
(file.getName());
(file.getName());
String[] files = file.list();
for (int i = 0; i files.length; i++) {
File file1 = new File(file.getPath()+"\\"+files[i] );
if(file1.isDirectory()){
upload(file1);
;
}else{
File file2 = new File(file.getPath()+"\\"+files[i]);
private static DiskFileItemFactory factory; //獲得磁盤文件條目工廠
private static ServletFileUpload upload; //文件上傳處理類
factory = new DiskFileItemFactory(); //獲得磁盤文件條目工廠
factory.setRepository(new File(config.getCache())); //創(chuàng)建緩存工廠
factory.setSizeThreshold(1024*1024*2) ; //設置緩存區(qū)的大小
upload = new ServletFileUpload(factory); //高水平的API文件上傳處理
upload.setSizeMax(10 * 1024 * 1024); //設置文件上傳的最大值
upload.setFileSizeMax(2* 1024 * 1024); //設置文件上傳的最大值
ListFileItem list = upload.parseRequest(request);
for(FileItem item : list){
String fieldName = item.getFieldName(); //獲取表單的屬性名字
String fileName = item.getName() ; //獲取文件名
if(item.isFormField()){ //如果獲取的 表單信息是普通的 文本 信息
}else{
File file = new File("d://test.txt");
item.write(file);
}
}