jspSmartUpload

 

 

 

 

package cn.com.henan.net.servlet;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;

import cn.com.henan.socket.MobileNumberErrerExce;


import cn.com.henan.socket.newsDetailSMS;
import cn.com.henan.socket.newsSockBase;
import cn.com.henan.util.DelFileUtil;
import cn.com.henan.util.readTxtData;

public class DetailSMSverlet extends HttpServlet {
	 //彩信发送
 
	private static final long serialVersionUID = 1L;

 
	public DetailSMSverlet() {
		super();
	}

	 
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
			this.doPost(request, response);
	 
	}

	public byte[] gbk2utf8(String chenese){
	    char c[] = chenese.toCharArray();
	            byte [] fullByte =new byte[3*c.length];
	            for(int i=0; i<c.length; i++){
	             int m = (int)c[i];
	             String word = Integer.toBinaryString(m);
	            // System.out.println(word);
	             
	             StringBuffer sb = new StringBuffer();
	             int len = 16 - word.length();
	             //补零
	             for(int j=0; j<len; j++){
	              sb.append("0");
	             }
	             sb.append(word);
	             sb.insert(0, "1110");
	             sb.insert(8, "10");
	             sb.insert(16, "10");
	             
//	             System.out.println(sb.toString());
	             
	             String s1 = sb.substring(0, 8);          
	             String s2 = sb.substring(8, 16);          
	             String s3 = sb.substring(16);
	             
	             byte b0 = Integer.valueOf(s1, 2).byteValue();
	             byte b1 = Integer.valueOf(s2, 2).byteValue();
	             byte b2 = Integer.valueOf(s3, 2).byteValue();
	             byte[] bf = new byte[3];
	             bf[0] = b0;
	             fullByte[i*3] = bf[0];
	             bf[1] = b1;
	             fullByte[i*3+1] = bf[1];
	             bf[2] = b2;
	             fullByte[i*3+2] = bf[2];
	             
	            }
	            return fullByte;
	    }  
	
	private String utf8Togb2312(String str){
	      StringBuffer sb = new StringBuffer();
	      for(int i=0; i<str.length(); i++) {
	          char c = str.charAt(i);
	          switch (c) {
	             case '+':
	                 sb.append(' ');
	             break;
	             case '%':
	                 try {
	                      sb.append((char)Integer.parseInt(
	                      str.substring(i+1,i+3),16));
	                 }
	                 catch (NumberFormatException e) {
	                     throw new IllegalArgumentException();
	                }
	                i += 2;
	                break;
	             default:
	                sb.append(c);
	                break;
	           }
	      }
	      // Undo conversion to external encoding
	      String result = sb.toString();
	      String res=null;
	      try{
	          byte[] inputBytes = result.getBytes("8859_1");
	          res= new String(inputBytes,"UTF-8");
	      }
	      catch(Exception e){}
	      return res;
	} 

 
	 //彩信发送
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		 response.setContentType("text/html;charset=UTF-8");
		 response.setCharacterEncoding("UTF-8");
	     PrintWriter writer = response.getWriter();
	     String action = request.getParameter("action");
	    
	    
	     
	     if("number".equals(action)){
	   
	     String mbNumber= request.getParameter("mbNumber");
	     String[]mbNumbers = mbNumber.split(";");
	     String mmsid= new String (  request.getParameter("mmsid").getBytes("ISO-8859-1"),"utf-8") ;
	     byte b[]=mmsid.getBytes(Charset.forName("gb2312")); 
								      // java.net.URLDecoder.decode("name", "UTF-8"); 
								     System.out.println(mmsid);
								    // System.out.println("mmsid:"+new String (mmsid.getBytes("ISO-8859-1"),"utf-8") );
								      System.out.println("mbNumber:"+ mbNumber );
								 	//byte b[]="亀井金融相1".getBytes(Charset.forName("UTF8"));   //SHIFT_JIS 日文编码
           						    // System.out.println(b.length);   
		
		 newsSockBase newsTask = new newsSockBase();
		 newsTask.setIPandPort("20.0.0.31", 8888);
	 
		 
		 newsDetailSMS SMS = new newsDetailSMS();  
		 SMS.setType(4);
		 SMS.setMessages(mmsid); 
		 
		 SMS.setMessagesL(b.length );
		 SMS.setIsdnL(mbNumbers.length);
		 SMS.setIsdn(mbNumbers);
		 newsTask.start(SMS);
		 System.out.println("彩信SMS.getResultMessage()"+SMS.getResultMessage());
         writer.print("{success:true,result:'"+ SMS.getResultMessage()+  "'}");	
	     }else if("upfile".equals(action)){

	    	 
	    	 System.out.println("upfile");
			 String savePath=request.getRealPath("\\upload");
	        //System.out.println(savePath);
			SmartUpload mySmartUpload = new SmartUpload();
			 
			//String currentDirectoryPath=null;
		    mySmartUpload.setForcePhysicalPath(true);
	        mySmartUpload.initialize(this.getServletConfig(), request,response);
	        // 1.限制每个上传文件的最大长度。10M
	        mySmartUpload.setMaxFileSize(10000000);
	       // 3.设定允许上传的文件(通过扩展名限制),仅允许 txt文件。
	        mySmartUpload.setAllowedFilesList("txt");
	        com.jspsmart.upload.SmartFile  file=null;
	        try {
	            mySmartUpload.upload("utf-8");
	           }  catch (  SecurityException e1) {
	              } catch (NegativeArraySizeException e1) {
	            	  } catch (SmartUploadException e1) {
	          
	            e1.printStackTrace();
	           }
	        
	          com.jspsmart.upload.SmartRequest req = mySmartUpload.getRequest();
 
	          
	           // System.out.println(request.getCharacterEncoding());
		    	 String test= req.getParameter("messageDetail");
		    	/* String mmsid= new String ( test.getBytes("gbk"),"ISO-8859-1") ;
		    	 String mmsid2= new String ( mmsid.getBytes("ISO-8859-1"),"utf-8") ;
		    	 System.out.println("mmsid2"+mmsid2);*/
		    	//System.out.println( mmsid ); 
		    	// String mmsid= utf8Togb2312(test);
		     	 String mmsid= new String ( test.getBytes("utf-8"),"ISO-8859-1") ;
		    	 
		    	 

		     	 String mmsid2= new String ( mmsid.getBytes("ISO-8859-1"),"utf-8") ;
		    	 System.out.println("mmsid2"+mmsid2);
		    	 
		    	 
			     byte b[]=mmsid2.getBytes(Charset.forName("gb2312")); 
					  
	          

 /*-------------------------删除指定目录下的文件begin---------------------------------*/
		 DelFileUtil.delAllFile(savePath);
 /*------------------------删除指定目录下的文件end-----------------------------------*/          
		
 
 /*------------------------保存上传的文件 begin-----------------------------------*/          
	    
	           //保存文件
	           for (int i = 0; i < mySmartUpload.getFiles().getCount(); i++) {
	        	   file = mySmartUpload.getFiles().getFile(i);
	        	   if (file.isMissing()) continue;
	        	   try {
	        		   file.saveAs("/upload/" + file.getFileName()); 
	        	   	} catch (SmartUploadException e){
	        		   e.printStackTrace();
	        	   	}
	         }	
	 /*------------------------保存上传的文件 end-----------------------------------*/          
	           List<String> messages = new ArrayList <String>();
	           String Isdns[]=null;
	      	   readTxtData readTD = new readTxtData();
	      	   System.out.println(savePath+"\\"+file.getFileName());
	      	   readTD.setTxtPath( savePath+"\\"+file.getFileName() );
	      	 try {
	      		Isdns =readTD.readTxtPath(""); 
	      	} 
	      	 catch(FileNotFoundException f){
	      		 f.printStackTrace();
	      		System.out.println("找不到文件");
	      		return;
	      	 }
	      	 
	      	 catch (IOException e1){
	      		 e1.printStackTrace();
	      	} catch (MobileNumberErrerExce e){
	      		//writer.print("{success:true,mobileNewspaper:'"+ "" +"',optype:'"+" "+"', opresult:'"+"号码格式错误"+"'}");	
	      		 return ;
			}
	 
	  
	      	 
	      	 newsSockBase newsTask = new newsSockBase();
			 newsTask.setIPandPort("20.0.0.31", 8888);
			
	      	 
	      	 //短信发送
			 newsDetailSMS SMS = new newsDetailSMS();
			 SMS.setType(4);
			 SMS.setMessages(mmsid2); 
			 SMS.setMessagesL(b.length );
			 SMS.setIsdnL(Isdns.length);
			 SMS.setIsdn(Isdns);
			 newsTask.start(SMS);
	 
	         System.out.println("彩信SMS.getResultMessage()"+SMS.getResultMessage());
	         writer.print("{success:true,result:'"+ SMS.getResultMessage()+  "'}");	
	     }
	}
 
 

}

java上传文件

 

你可能感兴趣的:(C++,c,servlet,socket,C#)