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

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值