android上传文件php,android 上传文件用php程序在服务端接受(一)

php服务端接受程序。。file_up.php。

/* require_once('lib/session_config.php');

require_once('lib/flydc.php');

require_once('lib/common.php');

require_once('config.php'); */

//header("content-Type:text/html;charset=UTF-8");

// var_dump($_SERVER['HTTP_RANGE']);

$fileUp = new FileUp();

$fileUp->uploadFile();

exit;

class FileUp

{

public $isHaveFid = false;

public $target_path = "../files/"; //文件存取的路径

public $uid,$fid,$ext,$alllength,$poss,$finish;

function initData()

{

$this->fid = $_GET['fid'];

$this->ext = $_GET['ext'];

$this->poss = $_GET['pos'];

}

function uploadFile()

{

$this->initData();

$absoluteName = "";//$this->getdir()."/".basename($_FILES['uploadedfile']['name']);

$handleRead = null;

$fid = "";

$handleWrite = null;

if(!empty($_FILES['uploadedfile']['tmp_name']))

{

$handleRead = fopen($_FILES['uploadedfile']['tmp_name'],'rb');

//$extend = pathinfo( $_FILES[$name]['name'] ); //$extend['extension'] 扩展

if(!empty($this->fid)) //fid存在是接着上次上传

$fid = $this->fid;

else //fid不存在,做为第一次上传,生成一个fid

$fid = time().'_'.mt_rand(1,22222).".".$this->ext;

$absoluteName = $this->getdir()."/".$fid;

$handleWrite = fopen($absoluteName,'a');

$buffer = '';

while (!feof($handleRead))

{

$buffer = fread($handleRead, 1024*128);

if(strlen($buffer)<=0)

break;

fwrite($handleWrite,$buffer);

}

fclose($handleWrite);

fclose($handleRead);

echo $fid; //返回fid 给服务器

$this->saveLog("$fid 上传成功");

}else

{

echo "fail";

$this->saveLog(" 上传失败");

}

}

function saveLog($content)

{

$logpath = $this->getdir()."/".date("Y-m-d",time())."_log.txt";

$result = fopen($logpath,'a');

fwrite($result,date("Y-m-d H:i:s",time())." ========== ".$content."\r\n");

fclose($result);

}

function getdir()

{

$day_dir = $this->target_path.date("Ymd",time());

if(!is_dir($day_dir))

{

mkdir($day_dir,0777,true);

}

return $day_dir;

}

}

?>

androiud 客户端java 代码

public void doUpload()

{

//要上传的文件

String pathString = FileManager.getParentDirectory()+"media/video_3_20141222145045024.mp4"; //video_3_20141222145045024.mp4 video_3_20141224153340976.mp4

//上传的地址

String acceptUrl = "http://10.0.10.3/flyguard/mobileapi/file_up.php?fid="+this.fidString+"&pos=&ext=mp4";

RandomAccessFile raf = null;

try

{

raf = new RandomAccessFile(pathString, "r");

long alllength=raf.length();

raf.seek(0);

byte[] buffer = new byte[128*1024];//128k

int count = 0;

while ((count = raf.read(buffer)) != -1)

{

// count = raf.read(buffer);

String result = uploadFil(acceptUrl,buffer);

System.out.println("MediaActivity doUpload return:"+result+ " count:"+count);

break;

}

} catch (Exception e)

{

e.printStackTrace();

}finally{

try

{

if(raf!=null)

raf.close();

} catch (IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

public String uploadFil(String acceptUrl,byte[] data)

{

String end = "\r\n";

String twoHyphens = "--";

String boundary = "******";

try

{

URL url = new URL(acceptUrl);

HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();

// 设置每次传输的流大小,可以有效防止手机因为内存不足崩溃

// 此方法用于在预先不知道内容长度时启用没有进行内部缓冲的 HTTP 请求正文的流。

httpURLConnection.setChunkedStreamingMode(data.length);// 128*1024 是128k

// 允许输入输出流

httpURLConnection.setDoInput(true);

httpURLConnection.setDoOutput(true);

httpURLConnection.setUseCaches(false);

// 使用POST方法

httpURLConnection.setRequestMethod("POST");

httpURLConnection.setRequestProperty("Connection", "Keep-Alive");

httpURLConnection.setRequestProperty("Charset", "UTF-8");

httpURLConnection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);//application/octet-stream multipart/form-data

DataOutputStream dos = new DataOutputStream(httpURLConnection.getOutputStream());

dos.writeBytes(twoHyphens + boundary + end);

dos.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\"; filename=\""

// +pathString.substring(pathString.lastIndexOf("/")+1)

+"myfilename"

+"\""

+end);

dos.writeBytes(end);

dos.write(data,0,data.length);

dos.writeBytes(end);

dos.writeBytes(twoHyphens + boundary + twoHyphens + end);

dos.flush();

String reponse = "";

if(httpURLConnection.getResponseCode() == 200 )

{

InputStream is = httpURLConnection.getInputStream();

InputStreamReader isr = new InputStreamReader(is,"utf-8");

BufferedReader br = new BufferedReader(isr);

while (null !=br.readLine())

{

reponse +=br.readLine();

}

is.close();

}

System.out.println("MediaActivity uploadFil Reponse:"+reponse);

dos.close();

return reponse;

} catch (Exception e)

{

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("MediaActivity uploadFil Exception:"+e.getMessage());

}

return "";

}

android上传文件到服务器

package com.spring.sky.image.upload.network; import java.io.DataOutputStream; import java.io.File; i ...

android -上传文件到服务器

android上传文件到服务器       重点:最好是设置好content-type这些参数的配置!     package com.spring.sky.image.upload.network; ...

android 上传文件

android对于上传文件,还是非常easy的,和java里面的上传都是一样的,基本上都是熟悉操作输出流和输入流!另一个特别重要的就是须要一些content-type这些參数的配置!  假设这些都弄好 ...

android上传文件到wamp服务器

1.php server(wamp)部分 建立unload.php页面代码如下 <?php move_uploaded_file($_FILES["file1"][&quot ...

Android上传文件至服务器&lpar;上&rpar;

每一次都不能上首页,真悲催..管理员让我上一次首页? 很多时候我更愿意一个人写代码,与其在垃圾代码上改改改,我更愿意直接重构. 整洁的代码简单直接.整洁的代码如同优美的散文.整洁的代码从不隐藏设计者的 ...

【经验记录】Android上传文件到服务器

Android中实现上传文件,其实是很简单的,和在java里面是一样的,基本上都是熟悉操作输出流和输入流!还有一个特别重要的就是需要配置content-type的一些参数!如果这些都弄好了,上传就很简 ...

Android上传文件到服务器(转)

Android中实现上传文件,其实是很简单的,和在java里面是一样的,基本上都是熟悉操作输出流和输入流!还有一个特别重要的就是需要配置content-type的一些参数!如果这些都弄好了,上传就很简 ...

Android上传文件之FTP

android客户端实现FTP文件(包括图片)上传应该没什么难度.写下来就了为了记录一下,望能帮到新手. 需要用到 commons-net-3.0.1.jar,后面附上jar包. 直接上代码: /** ...

Android 上传文件到 FTP 服务器

实现背景 近期接触到一个需求,就是将文件从Android系统上传到FTP服务器,虽然之前接触过FTP服务器,了解基本的使用流程,但是将此流程从使用习惯转化为代码实现还是有一定难度的.但是基本的流程还是 ...

随机推荐

IEnumerable&comma;IQueryable之前世今生

来自于:http://www.cnblogs.com/chengxiaohui/articles/2088967.html IEnumerable在.Net2.0中我们已经很熟悉了. ...

【CodeVS】1204 寻找字串位置

题目描述 Description 给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置. 输入描述 Input Description 仅一行包含两个字符串a和b 输出描述  ...

将具有关联关系的两个表从hibernate查询出来转成json对象时报错

第一篇文章: 相信大家做过JSON相关的东西对这个异常并不陌生,这个异常是由于JSONObject插件内部会无限拆解你传入的对象,直到没有可拆解为止,问题就在这,如果你传入的对象有外键关系,或者相互引 ...

ffmpeg&comma;X264编码结果I帧QP比P帧还大

enc_ctx->profile =FF_PROFILE_H264_MAIN ; enc_ctx->time_base.den = 24; enc_ctx->time_base.nu ...

HashMap非线程安全分析

通过各方资料了解,HashMap不是线程安全的,但是为什么不是线程安全的,在什么情况下会出现问题呢? 1. 下面对HashMap做一个实验,两个线程,并发写入不同的值,key和value相同,最后再看 ...

浅谈Web前端浏览器兼容问题

对于兼容最近一直困扰我,以前写的代码只是针对高质量用户来使用 不考虑IE7,8 这样的浏览器 ,但是最近我开发的时候必须要兼容,大喊一声我曹,没有办法,自己来吧! 所谓的浏览器兼容性问题,是指因为不同 ...

js中reduce&lpar;&rpar;用法

reduce()方法 定义:reduce()接收一个函数作为累加器,数组中每个值(从左到右)开始缩减,最终计算为一个值 对于空数组不执行回调函数 语法:array.reduce(function(to ...

Sqlserver事务隔离级别详解

sqlserver存储方式   页    sqlserver是以页的形式存储数据,每个数据页的大小为8KB,sqlserver会把空间分为多个页,sqlserver与数据交互单位最小的io操作就是页级 ...

mysql&comma;mybatis模糊查询

and device_type like CONCAT('%', ...

node 安装 webpack

首先要安装 Node.js, Node.js 自带了软件包管理器 npm,Webpack 需要 Node.js v0.6 以上支持,建议使用最新版 Node.js. 用 npm 安装 Webpack: ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值