服务器端 方法内代码
- String fileName = request.getParameter("fileName");
- String str = request.getParameter("file");
- log.info(fileName+"------------");
- log.info(str+"-==================");
- BASE64Decoder decoder = new BASE64Decoder();
- try {
- // Base64解码
- byte[] bytes = decoder.decodeBuffer(str);
- for (int i = 0; i < bytes.length; ++i) {
- if (bytes[i] < 0) {// 调整异常数据
- bytes[i] += 256;
- }
- }
- // 生成图片
- OutputStream outs = new FileOutputStream(filepath+fileName);
- outs.write(bytes);
- outs.flush();
- outs.close();
- return null;
- } catch (Exception e) {
- logger.error("", e);
- }
客户调用端
- public static String getPicBASE64() {
- String picPath = "/var/xxxx.png";
- String content = "";
- try {
- FileInputStream fileForInput = new FileInputStream(picPath);
- byte[] bytes = new byte[fileForInput.available()];
- if(bytes.length<102400){
- System.out.print(bytes.length);
- }
- fileForInput.read(bytes);
- content = new sun.misc.BASE64Encoder().encode(bytes); // 具体的编码方法
- fileForInput.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return content;
- }
- public static void main(String[] args) throws Exception {
- URL url = new URL("http://**********:80/newdemo/app/imageUpload.do");
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- connection.setDoOutput(true);
- connection.setDoInput(true);
- // Post 请求不能使用缓存
- connection.setUseCaches(false);
- // URLConnection.setFollowRedirects是static函数,作用于所有的URLConnection对象。
- // connection.setFollowRedirects(true);
- // URLConnection.setInstanceFollowRedirects是成员函数,仅作用于当前函数
- connection.setInstanceFollowRedirects(false);
- // 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的
- // 正文是urlencoded编码过的form参数,下面我们可以看到我们对正文内容使用URLEncoder.encode
- // 进行编码
- connection.setRequestProperty("Content-Type",
- "application/x-www-form-urlencoded");
- // 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,
- // 要注意的是connection.getOutputStream会隐含的进行connect。
- connection.connect();
- Long sendTime = System.currentTimeMillis();
- DataOutputStream out = new DataOutputStream(
- connection.getOutputStream());
- // 要传的参数
- String content ="fileName=ssh2.jpg";
- // 得到图片的base64编码
- content = content + "&" + URLEncoder.encode("file", "UTF-8") + "="+ URLEncoder.encode(getPicBASE64(), "UTF-8");
- out.writeBytes(content);
- out.flush();
- out.close();
- }
- asdfasdfasdf
- }