2013-02-21 31 views
1

在我的android應用程序我編碼視頻作爲基地64這樣。編碼視頻文件在Android和解碼在PHP

File file = new File(path);
InputStream is = new FileInputStream(file);
int length =(int)file.length();
byte [] bytes = new byte [length];
int a = is.read(bytes,0,length);
String str = Base64.encodeToString(bytes,0);
is.close();
//字符串發送到我的服務器....

PHP
$海峽= $ _ POST [ '海峽'];
$ var = base64_decode($ str);
$ fp = fopen('2013-02-21_14-52-35_968.mp4','w');
fwrite($ fp,$ var);
fclose($ fp);

所以,當視頻文件被寫入,我無法打開它。我如何正確編碼視頻並從PHP解碼?或什麼即時通訊失蹤感謝先進。

+0

Base64增加至少1/3的有效載荷。爲什麼不把它發送成二進制文件,可能是大塊的,所以它對flakey(移動)網絡有一定的適應性? – 323go 2013-02-21 23:18:16

+0

以及問題是我只讀了幾個字節,所以我循環,從服務器端我必須打開文件,編碼每個塊,將其添加到該文件,創建該文件。 – user2033349 2013-02-28 03:01:32

回答

1

我解決了我的問題,問題是我只編碼文件的一部分。在這裏我的解決方案:

$fp=fopen("/address".$filename,'w') 
while($row=mysql_fetch_array($getChunks)){ 
$chuncks=$row['chunkpart']; 
$var=base64_decode($chunks); 
    fwrite($fp,$var) 
}