您的位置:首页 > 运维架构 > Tomcat

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

2016-12-15 10:18 1126 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: