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" />上传文件jsvar 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
*****************************************
## 修改
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