【问题标题】:Saving a picture in my flash webcam snapshot application在我的 Flash 网络摄像头快照应用程序中保存图片
【发布时间】:2011-08-19 00:57:49
【问题描述】:

我制作了一个 Flash 网络摄像头应用程序,允许用户使用网络摄像头为自己拍照。我已成功将照片保存在我的本地主机中。但是,我想设置这些照片的名称。目前,照片名称由

$uniqueStamp = date('U');

我的 Flash 应用程序中还有一个文本字段,允许用户输入照片名称。例如,如果用户在文本字段中写入“MYPHOTONAME”,则将保存在我的本地主机中的照片也将命名为“MYPHOTONAME”。我如何在 Flash 和 PHP 中做到这一点?目前我遇到了一些问题,因为我无法将文本字段字符串发送到 PHP。

这是我将快照发送到 PHP 并让 PHP 将其保存在我的本地主机中的 Flash 代码:

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('照片/'.$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 但是我不知道确切的代码,谁能帮助我?

【问题讨论】:

    标签: php flash save webcam image


    【解决方案1】:

    您可以使用此类 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";
    }
    ?> 
    

    你不能做的只有一件事,就是听上传进度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多