zoukankan      html  css  js  c++  java
  • web项目使用fastdsf上传|下载文件

    在上传代码中添加一下代码

    suffix=suffix.substring(1);
    fast.FastDFSFile file = new fast.FastDFSFile(mFile.getBytes(), suffix);
    NameValuePair[] meta_list = new NameValuePair[4];
    meta_list[0] = new NameValuePair("fileName", mFile.getOriginalFilename());
    meta_list[1] = new NameValuePair("fileLength", String.valueOf(mFile.getSize()));
    meta_list[2] = new NameValuePair("fileExt", suffix);
    meta_list[3] = new NameValuePair("fileAuthor", "WangLiang");
    String filePath = fast.FileManager.upload(file, meta_list);
    System.out.println(filePath);

    public class FastDFSClient {
    private TrackerClient trackerClient = null;
    private TrackerServer trackerServer = null;
    private StorageClient1 storageClient = null;
    private StorageServer storageServer = null;

    public FastDFSClient(String conf) throws Exception {
    if (conf.contains("classpath:")) {
    conf = conf.replace("classpath:", this.getClass().getResource("/").getPath());
    }
    ClientGlobal.init(conf);
    trackerClient = new TrackerClient();
    trackerServer = trackerClient.getConnection();
    storageServer = null;
    storageClient = new StorageClient1(trackerServer, storageServer);

    }

    public String uploadFile(String fileName, String extName, NameValuePair[] metas) throws Exception {
    String result = storageClient.upload_file1(fileName, extName, metas);
    return result;
    }

    public String uploadFile(String fileName) throws Exception {
    String result = storageClient.upload_file1(fileName, null, null);
    return result;
    }

    public String uploadFile(String fileName, String extName) throws Exception {
    String result = storageClient.upload_file1(fileName, extName, null);
    return result;
    }
    }

    public class FastDFSFile {

    private static final long serialVersionUID = 1L;

    private byte[] content;
    private String name;
    private String ext;
    private String length;

    public FastDFSFile(byte[] content, String ext) {
    this.content = content;
    this.ext = ext;
    }

    public FastDFSFile(byte[] content, String name, String ext) {
    this.content = content;
    this.name = name;
    this.ext = ext;
    }

    public FastDFSFile(byte[] content, String name, String ext, String length
    ) {
    this.content = content;
    this.name = name;
    this.ext = ext;
    this.length = length;
    }

    public byte[] getContent() {
    return content;
    }

    public void setContent(byte[] content) {
    this.content = content;
    }

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public String getExt() {
    return ext;
    }

    public void setExt(String ext) {
    this.ext = ext;
    }

    public String getLength() {
    return length;
    }

    public void setLength(String length) {
    this.length = length;
    }


    }

    public class FileManager implements FileManagerConfig {

    private static final long serialVersionUID = 1L;
    private static TrackerClient trackerClient;
    private static TrackerServer trackerServer;
    private static StorageServer storageServer;
    private static StorageClient storageClient;

    static {
    try {
    String classPath = new File(FileManager.class.getResource("/").getFile()).getCanonicalPath();

    String fdfsClientConfigFilePath = classPath + File.separator + CLIENT_CONFIG_FILE;
    ClientGlobal.init(fdfsClientConfigFilePath);

    trackerClient = new TrackerClient();
    trackerServer = trackerClient.getConnection();

    storageClient = new StorageClient(trackerServer, storageServer);

    } catch (Exception e) {
    e.printStackTrace();
    }
    }


    /**
    * 文件上传
    * @param file
    * @param valuePairs
    * @return
    */
    public static String upload(FastDFSFile file, NameValuePair[] valuePairs) {
    String[] uploadResults = null;
    try {
    uploadResults = storageClient.upload_file(file.getContent(), file.getExt(), valuePairs);
    } catch (Exception e) {
    e.printStackTrace();
    }
    String groupName = uploadResults[0];
    String remoteFileName = uploadResults[1];

    String fileAbsolutePath = PROTOCOL + TRACKER_NGNIX_ADDR + SEPARATOR + groupName + SEPARATOR + remoteFileName;
    return fileAbsolutePath;
    }

    /**
    * 文件下载
    * @param groupName
    * @param remoteFileName
    * @param specFileName
    * @return
    */
    public static ResponseEntity<byte[]> download(String groupName, String remoteFileName, String specFileName) {
    byte[] content = null;
    HttpHeaders headers = new HttpHeaders();
    try {
    content = storageClient.download_file(groupName, remoteFileName);
    headers.setContentDispositionFormData("attachment",
    new String(specFileName.getBytes("UTF-8"), "iso-8859-1"));
    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return new ResponseEntity<byte[]>(content, headers, HttpStatus.CREATED);
    }
    }

    public interface FileManagerConfig extends Serializable {


    public static final String PROTOCOL = "http://";

    public static final String SEPARATOR = "/";

    public static final String TRACKER_NGNIX_ADDR = "192.168.111.136";

    public static final String TRACKER_NGNIX_PORT = "";

    public static final String CLIENT_CONFIG_FILE = "client.conf";
    }

    tracker_server=192.168.111.136:22122

    下载

    根据之前上传保存的物理路径 截取

    /**
    * 下载 截取物理路径下载
    * @param awardModel
    * @param request
    * @param response
    * @param createtime
    * @param endtime
    * @param act_id
    * @throws Exception
    */
    /*@RequestMapping(value = "/{username}/download", method = RequestMethod.GET)
    public ResponseEntity<byte[]> download(@PathVariable String username, Model model,HttpServletResponse response) throws IOException, MyException {
    User u = users.get(username);
    String filePath = u.getFilePath();
    String substr = filePath.substring(filePath.indexOf("group"));
    String group = substr.split("/")[0];
    String remoteFileName = substr.substring(substr.indexOf("/")+1);
    String specFileName = username + substr.substring(substr.indexOf("."));
    return FileManager.download(group, remoteFileName,specFileName);
    }*/

  • 相关阅读:
    VMware下安装Ubuntu虚拟机
    py3+urllib+bs4+反爬,20+行代码教你爬取豆瓣妹子图
    老铁,这年头得玩玩这个:Git基本操作【github】
    本地Git与GitHub服务器建立连接(SSH方式通信)
    python开启httpserver服务在自动化测试中的一个小运用
    python测试webservice接口
    Xcache3.2.0不支持php7.0.11
    Nginx设置alias别名目录访问phpmyadmin
    CentOS 7.2.1511编译安装Nginx1.10.1+MySQL5.7.15+PHP7.0.11
    CentOS平滑更新nginx版本
  • 原文地址:https://www.cnblogs.com/coderdxj/p/6816266.html
Copyright © 2011-2022 走看看