作者jeremylin (13k)
看板Flash
标题[问题]传 ByteArray 给PHP 相关问题
时间Thu Apr 28 23:02:43 2011
我要将flex中用imageSnapshot 快照起来的ByteArray上传到server端
不能用filereference因为使用者不会有选取的动作
我目前尝试用AMFPHP上传 可是一直无法上传成功
在flex 中 data.length约为150000
AMFPHP接到的却长度为1
同样的方法传送"测试字串" 或者[["自"],["定"],["阵"],["列"]]
都会成功 (用AMFPHP一段时间了,当然会成功)
可是我直接把imageSnapshot.data放到netconnection 的call中
却遇上这种鬼打墙的问题
另外 也有把data 放到URLrequest.data中 用HTTP post的方式丢
也是失败 请问你们有相关经验吗
有没有恶魔的细节可以分享? 我要疯了
//主要程式的部分
---------------in flex--------------------------
_objectHandles.selectionManager.clearSelection();
var fileReference:FileReference = new FileReference();
var bmpEnc:BMPEncoder = new BMPEncoder();
//撷取
var imageSnap:ImageSnapshot =
ImageSnapshot.captureImage(field, 0, bmpEnc);
var byteData:ByteArray = imageSnap.data;
byteData.position = 0;
//DataLoader 为我建立的AMFPHP媒介
var dataloader:DataLoader = new DataLoader();
dataloader._phpFileStr = "ebook.imageConvter";
dataloader.addEventListener(DataLoader.AMF_COMPLETE, onUploadComplete);
//trace("length is ",byteData.length);
dataloader.phpFunction("conv",byteData);
---------------in flex--------------------------
---------------in php---------------------------
<?php
class imageConvter
{
function conv($tempFile)
{
$fileName = date("YmdHis");
$somecontent = $tempFile;
$result;
if (!$handle = fopen("tmpImage/".$fileName.".bmp", 'w')) {
$result [] = "cant open";
return $result;
}
//chmod("tmpImage/".$fileName.".bmp",0777);
//file_put_contents("try.bmp", $somecontent);
if (fwrite($handle, $somecontent) === FALSE) {
$result [] = "cant write";
return $result;
}
//$result [] += "size is " .sizeof($somecontent);
$result [] = "fileName";
return $result;
}
}?>
---------------in php---------------------------
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.117.192.107
1F:→ aquarianboy:原始码? 04/28 23:14
※ 编辑: jeremylin 来自: 140.117.192.107 (04/29 01:19)