android 上传文件"Content-Type",为"application/octet-stream" 用php程序在服务端用$GLOBALS['HTTP_RAW_POST_DATA']接受(二)

服务端php程序file_up.php

function uploadFileBinary()
        {
            $this->initData();
            $absoluteName  = "";
            
            $fid = "";
            
            $handleWrite = null;
            if(!empty($GLOBALS[‘HTTP_RAW_POST_DATA‘]) && strlen($GLOBALS[‘HTTP_RAW_POST_DATA‘])>0)
            {
                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‘);
                    
                fwrite($handleWrite,$GLOBALS[‘HTTP_RAW_POST_DATA‘]);
                
                fclose($handleWrite);
                
                echo $fid;  //返回fid  给服务器
                $this->saveLog("$fid 上传成功");
            }else
            {
                echo "fail";
                $this->saveLog(" 上传失败");
            }
        }

客户端java 代码

private String fidString = "test01.mp4";
    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;
                
                
                String result = PostFileData(acceptUrl,buffer);
                System.out.println("MediaActivity doUpload return:"+result+ " count:"+count);
                
            }
            
           
        } catch (Exception e)
        {
            e.printStackTrace();
        }finally{
            
                try
                {
                    if(raf!=null)
                        raf.close();
                } catch (IOException e)
                {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
        }
        
        
    }
    
    
    /*
     * 提交 的url   Url
     * 上传 数据             data
     * */
    public String PostFileData(String Url,byte[] data) 
    {
      try
        {     
            HttpURLConnection conn = (HttpURLConnection) new URL(Url).openConnection();
            conn.setConnectTimeout(20 * 1000);
            conn.setRequestMethod("POST");
            conn.setDoOutput(true);// 允许对外输出数据
            conn.setRequestProperty("Content-Type", "application/octet-stream");
            conn.setRequestProperty("Content-Length", String.valueOf(data.length));
            OutputStream outStream = conn.getOutputStream();
            outStream.write(data);
            
            String Response="";
            if (conn.getResponseCode() == 200)
            {
                BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                String line;
                while ((line = reader.readLine()) != null)
                 {
                    Response += line;
                 }
            }
            
            return Response;
        }
      catch (Exception e)
        {
            Log.e("PostFileData", e.getMessage());
            FileManager.saveError("PostFileData", e);
        }
      finally
        { 
            return "";
        }
    }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。