我制作了一个Flash网络摄像头应用程序,允许用户使用网络摄像头拍摄自己的照片。我已成功将照片保存在我的localhost中。但是,我想设置这些照片的名称。目前,照片名称由
生成$ uniqueStamp = date('U');
我的Flash应用程序中还有一个文本字段,允许用户输入照片名称。例如,如果用户在文本字段中写入“MYPHOTONAME”,则将保存在我的localhost中的照片也将被命名为“MYPHOTONAME”。我如何在Flash和PHP中执行此操作?目前我遇到了一些问题,因为我无法将文本字符串发送给PHP。
这是我的快照代码,用于将快照发送到PHP并让PHP将其保存在我的localhost中:
imgBA = jpgEncoder.encode(imgBD1);
sendReq.data = imgBA;
sendLoader.load(sendReq);
这是我的PHP代码:
if(isset($ GLOBALS [“HTTP_RAW_POST_DATA”])){
$ photo = $ _POST ['photo'];
$ uniqueStamp = date('U');
$ filename = $ photo。$ uniqueStamp。“。jpg”;
$ fp = fopen('photos /'.$ filename,“wb”);
fwrite($ fp,$ GLOBALS ['HTTP_RAW_POST_DATA']);
fclose($ fp);
echo'filename = photos /'.$ filename。“& base =”。$ _ SERVER [“HTTP_HOST”]。dirname($ _ SERVER [“PHP_SELF”]);
}
正如你所看到的,我试图传入$ photo = $ _POST ['photo'];从flash到PHP然而我不知道确切的代码,任何人都可以帮助我吗?
答案 0 :(得分:0)
您可以使用此类org.lzyy.util.UploaderPostHelper.getPostData()来模拟HTTP上传(对FileReference执行相同的操作但使用生成的数据)
ActionScript方:
var urlRequest:URLRequest = new URLRequest();
urlRequest.url = uploadPath;
urlRequest.contentType = 'multipart/form-data; boundary=' + UploadPostHelper.getBoundary();
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = UploadPostHelper.getPostData(file, parameters);
urlRequest.requestHeaders.push( new URLRequestHeader( 'Cache-Control', 'no-cache' ) );
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
//handler for succesful loading of request, ex: trace(urlLoader.data);
//Complete not mean image handling was a success
//Memory usage, type checking, security restriction etc. could produce errors
urlLoader.addEventListener(Event.COMPLETE, onComplete);
//handler for faulty loading of request
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onError);
urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
urlLoader.load(urlRequest);
和PHP方面一样,基本的图片上传处理:
<?php
if ((($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
只有一件事你不能做,就是听上传进展。