关于android上传视频的问题,在线等急。。。
情况是这样的,我用android上传一段视频到服务器上,服务器可以成功接收到该视频文件,但是文件大小变小了,也不能正常播放!
public class UploadActivity extends Activity
{
Button btnPost=null;
Button btnPost1=null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnPost=(Button) findViewById(R.id.btnPost);
btnPost1=(Button) findViewById(R.id.btnPost1);
btnPost1.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
String actionUrl="http://192.168.1.100:8080/web/upload.do";
File file=new File("/sdcard/11.jpg");
post1(actionUrl,file);
}
});
btnPost.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
String actionUrl="http://192.168.1.100:8080/web/upload.do";
try {
postFile(actionUrl);
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
public void postFile(String actionUrl) throws IOException
{
String BOUNDARY=java.util.UUID.randomUUID().toString();
String MULTIPART_FROM_DATA="multipart/form-data";
URL uri=new URL(actionUrl);
HttpURLConnection conn=(HttpURLConnection) uri.openConnection();
conn.setReadTimeout(5*10000);
conn.setDoInput(true); //允许输入
conn.setDoOutput(true); //允许输出
conn.setUseCaches(false);
conn.setRequestMethod("POST"); //设置请求方式
conn.setRequestProperty("connection","keep-alive");
conn.setRequestProperty("Charsert","UTF-8");
conn.setRequestProperty("Content-Type",MULTIPART_FROM_DATA+";boundary="+BOUNDARY);
DataOutputStream outStream = new DataOutputStream(conn.getOutputStream());
byte[] buffer=new byte[1024];
// InputStream is=new FileInputStream(new File("/sdcard/abc.mp4"));
InputStream is=new FileInputStream(new File("/sdcard/11.jpg"));
int len=0;
while((len=is.read(buffer))!=-1)
{
outStream.write(buffer,0,len);
}
is.close();
outStream.flush();
//得到响应码
int res=conn.getResponseCode();
if(res==200)
{
System.out.println("上传完毕");
}
}
public void post1(String actionUrl,File files)
{
DataOutputStream outStream = null;
HttpURLConnection conn = null;
try
{
URL url = new URL(actionUrl);
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);// 允许输入
conn.setDoOutput(true);// 允许输出
conn.setUseCaches(true);// 不使用Cache
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Charset", "UTF-8");
conn.setRequestProperty("Content-Type","text/xml");
outStream = new DataOutputStream(conn.getOutputStream());
FileInputStream inputFile = new FileInputStream(files);
int c=0;
long count1 = 0;
byte[] buf = new byte[1024];
while ((c = inputFile.read(buf)) != -1)
{
outStream.write(buf,0,c);
outStream.flush();
count1+=c;
System.err.println("write size "+(count1)/1024);
}
inputFile.close();
int cah = conn.getResponseCode();
Log.v("cah:", ""+cah);
if (cah != 200){
throw new RuntimeException("请求url失败");
} else {
InputStream is = conn.getInputStream();
outStream.flush();
int ch;
StringBuilder result = new StringBuilder();
while ((ch = is.read()) != -1) {
result.append((char) ch);
}
System.err.println(result.toString());
}
outStream.close();
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
} finally {
if(null != conn){
conn.disconnect();
conn = null;
}
if(null!=outStream){
try {
outStream.close();
} catch (IOException e) {
//
}
outStream = null;
}
}
}
这是android端的代码,//获取输入流,是HTTP协议中的实体内容
ServletInputStream sis=request.getInputStream();
//缓冲区
byte buffer[]=new byte[2048];
// File file=new File("d:\\123.mp4");
File file=new File("d:\\11.jpg");
FileOutputStream fos=new FileOutputStream(file);
int len=0;
//把流里的信息循环读入到文件中
while((len=sis.read(buffer, 0, 2048))!=-1)
{
fos.write(buffer, 0, len);
len=sis.readLine(buffer, 0, 2048);
}
fos.close();
sis.close();这是我servlet服务端代码,各位大哥帮忙解决一下吧!
...全文
相关推荐
Android视频压缩并且上传
Android从相册选取视频和Android视频压缩并且上传。你需要的都在这里
android图片转视频,安卓屏幕录制
最近比较忙,一直都没有写博客了呢.本来一直在写3D开发OpenGL ES的,但是项目太紧,没有时间写.现在项目中要求了一个功能,是把一个3D的模型作为微信小视频去分享.那就涉及到一个屏幕录制. 就现在而言,对于安卓的屏幕录制主要有两种方法: 第一:利用系统5.0之后提供的屏幕录制API的MediaProjection去实现.实现的时候任何屏幕都可以去录制,除了添加窗口安全flag的以外.而且使
android studio上传视频保存数据库 后台servlet mybatis
android studio / 布局 在网上搬的砖 代码加修改。。。 在这里插入代码片` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"...
安卓拍照视频上传demo
安卓拍照上传demo 按理说也支持ios 不过屌丝没有苹果 没测试 【包括后台 一共两个项目】
android安卓app 照相+上传,录音+上传,录视频+上传(全套源代码).zip
android安卓app 照相+上传,录音+上传,录视频+上传(全套源代码).zip 浏览图库选择照片+上传


