Java客户端通过Http发送POST请求上传文件到web服务器
http://www.cnblogs.com/WilliamJiang/archive/2012/04/29/2475883.html
1.朋友的一个需求,让我给他实现,需求是这样的,需要用ASP.net写一个页面负责处理客户端上传的文件,并根据传递的参数把文件保存到相应的目录。客户端是手机应用程序,因为没学过Android,所以我只是写了一个Java的Demo用来上传文件。
服务端:

public partial class _Default : System.Web.UI.Page
{ private string id = "";
private string userName = "";
private string type = "";
private string fileName = "";
//文件长度
private long contentLength = 0;
private static readonly string filePath = ConfigurationManager.AppSettings["filePath"];
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
id = Request["id"];
userName = Request["user"];
type = Request["type"];
fileName = Request.Headers["FileName"];
writeFile();
}
} /// <summary>
/// 上传文件
/// </summary>
private void writeFile()
{
try
{
Stream stream = Request.InputStream;
contentLength = stream.Length;
string currentFilePath = filePath + userName;
if (!Directory.Exists(currentFilePath))
{
Directory.CreateDirectory(currentFilePath);
} FileStream fileStream = File.Create(currentFilePath + @"\" + fileName);
//每次读取的1024个字节
byte[] bytes = new byte[1024]; int numReadByte = 0;
while ((numReadByte = stream.Read(bytes, 0, 1024)) != 0)
{
fileStream.Write(bytes, 0,numReadByte);
}
//关闭流
stream.Close();
fileStream.Close(); }

Java文件上传客户端示例,(几年没搞java有点生疏了):

import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.net.HttpURLConnection;
import java.net.URL; /**
*
* 只是写的一个示例,filePath,和FileName根据需要进行调整。
*/
public class MyTest { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub String str="http://localhost:2906/Default.aspx?id=1&user=2&type=3";
String filePath="D:\\Wildlife.wmv";
String fileName="Wildlife.wmv";
try {
URL url=new URL(str);
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.addRequestProperty("FileName", fileName);
connection.setRequestProperty("content-type", "text/html");
BufferedOutputStream out=new BufferedOutputStream(connection.getOutputStream()); //读取文件上传到服务器
File file=new File(filePath);
FileInputStream fileInputStream=new FileInputStream(file);
byte[]bytes=new byte[1024];
int numReadByte=0;
while((numReadByte=fileInputStream.read(bytes,0,1024))>0)
{
out.write(bytes, 0, numReadByte);
}
out.flush();
fileInputStream.close();
//读取URLConnection的响应
DataInputStream in=new DataInputStream(connection.getInputStream());
} catch (Exception e) {
e.printStackTrace();
} } }
Java客户端通过Http发送POST请求上传文件到web服务器的更多相关文章
- python发送post请求上传文件,无法解析上传的文件
前言 近日,在做接口测试时遇到一个奇葩的问题. 使用post请求直接通过接口上传文件,无法识别文件. 遇到的问题 以下是抓包得到的信息: 以上请求是通过Postman直接发送请求的. 在这里可以看到消 ...
- libcurl 上传文件至 web服务器
测试环境搭建, 使用 wamp server (windows下的 apache+MySQL+php) libcurl vc6 工程代码 下载地址: http://download.csdn.ne ...
- SpringMVC实现PUT请求上传文件
在JQuery中,我们可以进行REST ful中delete和put的请求,但是在java EE标准中,默认只有在POST请求的时候,servlet 才会通过getparameter()方法取得请求体 ...
- SSM框架下,使用ajax请求上传文件(doc\docx\excel\图片等)
1.准备工作 1.1.添加上传必要jar包 <dependency> <groupId>commons-io</groupId> <artifactId> ...
- Postman Post请求上传文件
Postman Post请求上传文件一.选择post请求方式,输入请求地址 二.填写Headers Key:Content-Type :Value:multipart/form-data 如下图 三. ...
- java 上传文件到 ftp 服务器
1. java 上传文件到 ftp 服务器 package com.taotao.common.utils; import java.io.File; import java.io.FileInpu ...
- python中使用multipart/form-data请求上传文件
最近测试的接口是上传文件的接口,上传单个文件,我主要使用了2种方法~ 接口例如: URL: http://www.baidu.com/*** method:post 参数: { "salar ...
- SpringBoot 上传文件到linux服务器 异常java.io.FileNotFoundException: /tmp/tomcat.50898……解决方案
SpringBoot 上传文件到linux服务器报错java.io.FileNotFoundException: /tmp/tomcat.50898-- 报错原因: 解决方法 java.io.IOEx ...
- element-ui上传组件,通过自定义请求上传文件
记录使用element-ui上传组件,通过自定义请求上传文件需要注意的地方. <el-upload ref="uploadMutiple" :auto-upload=&quo ...
随机推荐
- reactnativemodal
'use strict'; var React = require('react-native'); var Modal = require('react-native-modal'); var { ...
- Objective-C学习笔记_Xcode模拟命令行填入参数执行
菜单Product->Edit Scheme 左边找到run xxx,点击后再邮编选择Arguments面板中就可以设置Xcode在运行命令行app时模拟输入参数. 设置完成后再次run就会自动 ...
- HTTP缓存机制
缓存对于移动端是非常重要的存在. 减少请求次数,减小服务器压力. 本地数据读取速度更快,让页面不会空白几百毫秒. 在无网络的情况下提供数据. 缓存一般由服务器控制(通过某些方式可以本地控制缓存,比如向 ...
- 【Linux】用less查看日志文件
一般程序部署在Linux环境,查看日志时,一般用less满足大部分的需求. 列举.记录最常用的场景,代码以Tomcat日志文件catalna.out为例. > 直接查看文件 less catal ...
- vs配置opencv
配置OpenCv: 一.新建工程 无论是mfc还是控制台程序都可以. 二.下载opencb,安装在非空格路径下面 解压出来有两个文件夹:build和source,主要用到build,build-x86 ...
- 中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。
package a; public interface CentralPartyCommittee { void partyLeader(); } package a; public abstract ...
- block 实现原理(内存管理详解)(二)
在以前,MRC环境下,使用block很可能会出现内存泄漏问题,并且在以往的面试中,一些接触比较久的程序员都会喜欢问到这个问题,block内存泄漏的问题! 下面,我来介绍一下,MRC下Block内存泄漏 ...
- Nodejs发送Post请求时出现socket hang up错误的解决办法
参考nodejs官网发送http post请求的方法,实现了一个模拟post提交的功能.实际使用时报socket hang up错误. 后来发现是请求头设置的问题,发送选项中需要加上headers字段 ...
- mysql中bigint、int、mediumint、smallint 和 tinyint的取值范围
mysql数据库设计,其中,对于数据性能优化,字段类型考虑很重要,搜集了些资料,整理分享出来,这篇为有关mysql整型bigint.int.mediumint.smallint 和 tinyint的语 ...
- [转]ZigBee On Windows Mobile--ZigBee模块天线设计
原文出处:http://www.cnblogs.com/dearsj001/archive/2008/10/26/1320029.html