linux搭建smb文件共享服务,java上传文件共享服务器,tomcat端口直接访问

来源:互联网 发布:淘宝买二手手机靠谱吗 编辑:程序博客网 时间:2024/05/29 02:26
html上传文件
<input type="file" id="up_imgEn"  name="up_imgEn" class="form-control" ng-model="up_imgEn" />
<input type="file" id="up_img"  name="up_img" class="form-control" ng-model="up_img" />
上传文件js
var img = $("#up_img").val();var imgEn = $("#up_imgEn").val();
$.ajaxFileUpload({    async: true,    url: "/bi_gamePlatform/add",    type: 'post',    dataType: 'JSON',    fileElementId:['up_img','up_imgEn'],    data: {        img:img,        imgEn:imgEn    },    success: function(data){        //防止表单重提交        $("#addGamePlatformSubmit").attr("disabled", false);        $translate(data.msg).then(function(msg) {            SweetAlert.swal({                title: msg,                type: data.code=='200'?'success':'error'            });        })        $modalInstance.close();    },    error: function() {        //防止表单重提交        $("#addGamePlatformSubmit").attr("disabled", false);        $modalInstance.close();    }});

@RequestMapping(value="add",method = RequestMethod.POST)public Response add(HttpServletRequest request, GamePlatform platform) { MssStaff staff = SecurityUtils.getCurrentUser(request); try { MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; // 取得request中的所有文件名 Iterator<String> iter = multiRequest.getFileNames(); while (iter.hasNext()) { //.... String fileName = iter.next(); // 取得上传文件 MultipartFile image = multiRequest.getFile(fileName); String key=image.getName(); if (image.getSize() > 3024000l) { logger.info("图片上传图片容量过大!(1G)"); return Response.error(GlobalEnum.GLOBAL_ENUM_CLIENT_ERROR_CODE.getValue(), SidCustEnum.SID_CRST_ERROR_SID_ERROR_33.getValue()); } if (image != null && image.getSize() > 0) { String serviceImage = upImage(image.getInputStream(), image.getOriginalFilename()); if(key.equals("up_img")) { platform.setImg(serviceImage); } else if(key.equals("up_imgEn")){ platform.setImgEn(serviceImage); } } else{ logger.info("请选择图片!"); return Response.error(GlobalEnum.GLOBAL_ENUM_CLIENT_ERROR_CODE.getValue(), SidCustEnum.SID_CRST_ERROR_SID_ERROR_34.getValue()); } }
    private String upImage(InputStream inputStream,String imageName)    {        //TODO        /**    * 服务创建成功后 上传文件    */        SmbUtil smbUtil = new SmbUtil(this.propertiesService.getSmbServerUrl(),"bbp");        String type = ".jpg";        if(imageName.lastIndexOf(".")>0){            type = imageName.substring(imageName.lastIndexOf(".")) ;        }        imageName = UUID.randomUUID().toString().substring(0,20)+type ;        smbUtil.uploadFileByStream(inputStream, imageName);        return imageName;    }}smb上传文件工具类
package com.ig.common.smb;import jcifs.smb.SmbFile;import jcifs.smb.SmbFileOutputStream;import org.apache.log4j.Logger;import java.io.*;import java.net.MalformedURLException;import java.util.List;/** * SMB文件传输工具类 * Created by terry on 2016/1/7 0007. */public class SmbUtil {    private static final Logger logger = Logger.getLogger(SmbUtil.class);//    private static String url = "smb://kenny:123456@192.168.0.50";    private static  SmbFile smbFile = null;//Singleton    private  SmbFileOutputStream smbOut = null;    private String url ;    private  String code_temp = "";   public SmbUtil(String url,String code){       this.url = url ;       code_temp = code;        init(code);    }    /**     * 初始化链接     * @param code     */    public  void init(String code) {        try {            logger.info("开始连接...url" + url + "/" + code);        if (smbFile == null) {            smbFile = new SmbFile(url + "/" + code);            code_temp = code;            smbFile.connect();          }            logger.info("连接成功...url" + url + "/" + code);        } catch (MalformedURLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }    /**     * 文件上传     * @param inputStream     * @param imageName     * @return     */    public boolean uploadFileByStream (InputStream inputStream,String imageName) {        long start = System.currentTimeMillis();        boolean flag = true ;        BufferedInputStream bf = null;        try {            System.out.println("--->  "+url +"/"+code_temp+ "/");            this.smbOut = new SmbFileOutputStream(url +"/"+code_temp+ "/" + imageName, false);            bf = new BufferedInputStream(inputStream);            byte[] bt = new byte[8192];            int n = bf.read(bt);            while (n != -1) {                this.smbOut.write(bt, 0, n);                this.smbOut.flush();                n = bf.read(bt);            }            logger.info("文件传输结束... 文件传输耗时:"+(System.currentTimeMillis()-start));        } catch (IOException e) {            e.printStackTrace();            flag = false ;        } finally {            try {                if (null != this.smbOut)                    this.smbOut.close();                if (null != bf)                    bf.close();            } catch (Exception e2) {                e2.printStackTrace();            }        }        return flag;    }}linux搭建smb服务

1、   安装samba

安装命令

#yum install samba samba-client -y

出现标红部分说明安装成功:

2、  建立目录和用户(创建之前检查是否已存在)

# mkdir /common

# useradd -s /sbin/nologin rob

3、   将用户加入到samba里,并设置密码

# smbpasswd -a rob

4、更改目标目录权限

# chown 777 /common/

5、   更改samba配置文件

# vim /etc/samba/smb.conf

*****************************************

## 修改

workgroup = STAFF//域

security = user

## 增加

[common]

path=/common

write list = brian

browseable = yes

hosts allow = 172.25.0. # 172网段

 

6、   启动服务

 

远程操作SMB服务相关Shell文件

 

package ig.com.test;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;

public class TestCtrCommond {
    
    public static String smbPath(String code){
        
        String hostname = "192.168.0.50";
        String username = "root";
        String password = "kenny123456";
        //指明连接主机的IP地址
        Connection conn = new Connection(hostname);
        Session ssh = null;
        try {
            //连接到主机
            conn.connect();
            //使用用户名和密码校验
            boolean isconn = conn.authenticateWithPassword(username, password);
            if(!isconn){
                System.out.println("用户名称或者是密码不正确");
            }else{
                System.out.println("已经连接OK");
                ssh = conn.openSession();                
                //将屏幕上的文字全部打印出来
                StringBuffer buff = new StringBuffer();
                /**
                 * shell文件思想
                 * 建立*.sh文件,并赋予权限,执行*.sh文件 ,shell文件相关思想
                 * 1.判断是否存在共享文件夹
                 *  1.1  如果存在则删除该文件夹文件,不会重新创建smb共享服务,不会修改相关配置
                 *  1.2 如果不存在的情况,则修改/etc/samba/smb.conf 文件 ,重新创建smb共享服务
                 */
                buff.append("cd /opt/app/apache-tomcat-7.0.63/apache-tomcat-7.0.63_8886/webapps/");
                buff.append(";");
                buff.append("> "+code+".sh");
                buff.append(";");
                buff.append("touch "+code+".sh");
                buff.append(";");
                buff.append("echo '#!/bin/sh' >> "+code+".sh");
                buff.append(";");
                buff.append("echo 'if [ -d /opt/app/apache-tomcat-7.0.63/apache-tomcat-7.0.63_8886/webapps/"+code+" ];then' >> "+code+".sh");
                buff.append(";");
                buff.append("echo 'cd "+code+"'>>"+code+".sh");
                buff.append(";");
                buff.append("echo 'rm -rf *'>>"+code+".sh");
                buff.append(";");
                buff.append("echo 'echo this path already exist' >> "+code+".sh");
                buff.append(";");
                buff.append("echo else >> "+code+".sh");
                buff.append(";");
                buff.append("echo 'mkdir "+code+"'>>"+code+".sh");
                buff.append(";");
                buff.append("echo 'chmod 777 "+code+"'>>"+code+".sh");
                buff.append(";");
                buff.append("echo 'cd "+code+"'>>"+code+".sh");
                buff.append(";");
                buff.append("echo 'touch "+code+".txt'>>"+code+".sh");
                buff.append(";");
                buff.append("echo 'echo ["+code+"] >>"+code+".txt' >> "+code+".sh");
                buff.append(";");
                buff.append("echo 'echo path=/opt/app/apache-tomcat-7.0.63/apache-tomcat-7.0.63_8886/webapps/"+code+" >> "+code+".txt' >> "+code+".sh");
                buff.append(";");
                buff.append("echo 'echo write list = kenny >> "+code+".txt'>>"+code+".sh");
                buff.append(";");
                buff.append("echo 'echo browseable = yes >> "+code+".txt'>>"+code+".sh");
                buff.append(";");
                buff.append("echo 'cat "+code+".txt >> /etc/samba/smb.conf' >> "+code+".sh");
                buff.append(";");
                buff.append("echo service smb restart >> "+code+".sh");
                buff.append(";");
                buff.append("echo fi >> "+code+".sh");
                buff.append(";");
                buff.append("chmod +x "+code+".sh");
                buff.append(";");
                buff.append("./"+code+".sh");
                buff.append(";");

                System.out.println(buff.toString());
                ssh.execCommand(buff.toString());
                InputStream  is = new StreamGobbler(ssh.getStdout());
                BufferedReader brs = new BufferedReader(new InputStreamReader(is));
                while(true){
                    String line = brs.readLine();
                    if(line==null){
                        break;
                    }
                    System.out.println(line);
                }
            }
            //连接的Session和Connection对象都需要关闭
            ssh.close();
            conn.close();
            
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        return "";
    }

    public static void main(String[] args) {
        
        TestCtrCommond.smbPath("bbp");
        
    }

}
依赖jar包
ganymed-ssh2-build210.jar


1 0
原创粉丝点击