日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

服务器文件上传记录,记录一下上传文件(图片)的过程上传图片到ftp服务器

發布時間:2024/9/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 服务器文件上传记录,记录一下上传文件(图片)的过程上传图片到ftp服务器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于沒理解servlet為何要用struts2取代而耗費了不少時間在找如何獲取前端傳輸過來的數據。html

public void doPost(HttpServletRequest request,HttpServletResponse esponse) throws IOException,ServletException而轉為struts2時,struts2給咱們處理了。

因此你須要在Action中定義他們,并且要和前端對應。

前端前端

文件

舒適提示:上傳文件

Actionjava

package nwpu.precisefunds.compare.dao;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.DataInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.Serializable;

import java.net.SocketException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.List;

import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.FileUploadException;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

import org.apache.commons.net.ftp.FTPClient;

import org.apache.commons.net.ftp.FTPReply;

import org.apache.struts2.ServletActionContext;

import org.apache.tomcat.util.http.fileupload.ByteArrayOutputStream;

import com.opensymphony.xwork2.ActionSupport;

import nwpu.precisefunds.applicant.service.ApplicantService;

import nwpu.precisefunds.photo.service.ImageService;

import nwpu.precisefunds.photo.vo.Image;

public class UploadImagesAction extends ActionSupport implements Serializable {

private static final int BUFFER_SIZE = 16 * 1024;

private static final int MEMORY_THRESHOLD = 1024 * 1024 * 3; // 3MB

private static final int MAX_FILE_SIZE = 1024 * 1024 * 40; // 40MB

private static final int MAX_REQUEST_SIZE = 1024 * 1024 * 50; // 50MB

private File photo;

private String photoContentType;

private String photoFileName;

private String destPath;

public File getPhoto() {

return photo;

}

public void setPhoto(File photo) {

this.photo = photo;

}

public String getPhotoContentType() {

return photoContentType;

}

public void setPhotoContentType(String photoContentType) {

this.photoContentType = photoContentType;

}

public String getPhotoFileName() {

return photoFileName;

}

public void setPhotoFileName(String photoFileName) {

this.photoFileName = photoFileName;

}

public String getDestPath() {

return destPath;

}

public void setDestPath(String destPath) {

this.destPath = destPath;

}

private String newFileName;

public String getNewFileName() {

return newFileName;

}

public void setNewFileName(String newFileName) {

this.newFileName = newFileName;

}

private ImageService imageService;

public ImageService getImageService() {

return imageService;

}

public void setImageService(ImageService imageService) {

this.imageService = imageService;

}

private ApplicantService applicantService;

public void setApplicantService(ApplicantService applicantService) {

this.applicantService = applicantService;

}

public String execute() throws SocketException, IOException {

HttpServletRequest request = ServletActionContext.getRequest();

//http://blog.163.com/lfsyhuangaigang@126/blog/static/77436670201332303122315/

//https://www.cnblogs.com/qinglangyijiu/p/7803818.html

FTPClient fc = new FTPClient();

int reply=0;

String hostName = "192.168.2.1";//服務器ip地址

String ftpUser = "ftptest";//ftp用戶名

String ftpPass = "123456";//ftp密碼

int port = 9091;//端口

fc.connect(hostName, port);

fc.login(ftpUser, ftpPass);

reply = fc.getReplyCode();

FTPReply.isPositiveCompletion(reply);

//System.out.println(reply+"是否是230呀");

if((FTPReply.isPositiveCompletion(reply))){

System.out.println("鏈接成功");

}

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

// 取當前日期做為文件夾

SimpleDateFormat cs = new SimpleDateFormat("yyyy");

String dateCs = cs.format(new Date());

System.out.println("文件夾格式為:"+dateCs);

String dateFile = sdf.format(new Date());

// System.out.println("格式化后的date:"+dateFile);

// 生成隨機文件名

String fileName = UUID.randomUUID() + ".jpg";

System.out.println("文件名:" + fileName);

// 拼接上傳的路徑

String uploadPath = "uploadImage/" + dateFile + "/" + fileName;

System.out.println("上傳的路徑:"+uploadPath);

// 建立文件夾 必須一層一層建立

fc.makeDirectory("uploadImage");

fc.makeDirectory("uploadImage" + "/" + dateFile);

//https://www.cnblogs.com/kongxianghao/articles/6879367.html

//File f= new File("f:" + File.separator + "a.jpg");

InputStream input = new FileInputStream(getPhoto());

if (!(fc.changeWorkingDirectory(uploadPath))) {

fc.setFileType(FTPClient.BINARY_FILE_TYPE);

if (fc.storeFile(uploadPath, input)) {

// 上傳成功將數據存到數據庫

System.out.println("上傳成功了?????????????");

Image img = new Image();// 須要補充內容

img.setImageTag("imageTag");

img.setXh("xh");

img.setImageUrl(uploadPath);

//int row = imageService.updateImage("xh", "imageTag", img);

}

request.getInputStream().close();

fc.logout();

}

return SUCCESS;

}

}

以上基本是主要的,數據庫

struts2.xml配置struts2apache

/WEB-INF/jsp/user.jsp

applicationContext.xml配置Springtomcat

scope="prototype">

只是個人理解,本文章只做我的工做記錄,但愿不要誤導后來人。服務器

有些內容沒有用到,等過幾天再改一下,會添加用戶的數據庫內容。app

總結

以上是生活随笔為你收集整理的服务器文件上传记录,记录一下上传文件(图片)的过程上传图片到ftp服务器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。