html - 直接上传图片到服务器

标签 html apache-flex actionscript

在以下链接中http://www.tuttoaster.com/create-a-camera-application-in-flash-using-actionscript-3/如何让摄像头拍照后直接上传到服务器

package
{
import flash.display.Sprite;
import flash.media.Camera;
import flash.media.Video;
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.events.MouseEvent;
import flash.net.FileReference;
import flash.utils.ByteArray;
import com.adobe.images.JPGEncoder;

public class caml extends Sprite
{
    private var camera:Camera = Camera.getCamera();
    private var video:Video = new Video();
    private var bmd:BitmapData = new BitmapData(320,240);
    private var bmp:Bitmap;
    private var fileReference:FileReference = new FileReference();
    private var byteArray:ByteArray;
    private var jpg:JPGEncoder = new JPGEncoder();

    public function caml()
    {
        saveButton.visible = false;
        discardButton.visible = false;

        saveButton.addEventListener(MouseEvent.MOUSE_UP, saveImage);
        discardButton.addEventListener(MouseEvent.MOUSE_UP, discard);
        capture.addEventListener(MouseEvent.MOUSE_UP, captureImage);

        if (camera != null)
        {
            video.smoothing = true;
            video.attachCamera(camera);
            video.x = 140;
            video.y = 40;
            addChild(video);
        }
        else
        {
            trace("No Camera Detected");
        }
    }
        private function captureImage(e:MouseEvent):void
        {
            bmd.draw(video);
            bmp = new Bitmap(bmd);
            bmp.x = 140;
            bmp.y = 40;
            addChild(bmp);

            capture.visible = false;
            saveButton.visible = true;
            discardButton.visible = true;
        }

        private function saveImage(e:MouseEvent):void
        {
            byteArray = jpg.encode(bmd);
            fileReference.save(byteArray, "Image.jpg");
            removeChild(bmp);
            saveButton.visible = false;
            discardButton.visible = false;
            capture.visible = true;
        }

        private function discard(e:MouseEvent):void
        {
            removeChild(bmp);
            saveButton.visible = false;
            discardButton.visible = false;
            capture.visible = true;
        }


}
 }

最佳答案

FileReference.upload() 和 FileReference.download() 函数是非阻塞的。这些函数调用后返回,文件传输完成之前。此外,如果 FileReference 对象超出范围,则在离开范围时取消对该对象尚未完成的任何上传或下载。因此,只要上传或下载预计会继续,请确保您的 FileReference 对象将保留在范围内。 http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001063.html

关于html - 直接上传图片到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4489850/

相关文章:

javascript - 从 HTML 表单向 Node.js 服务器发送数据

apache-flex - 无法将 ImageSnapshot.captureBitmapData 与旋转矩阵一起使用

apache-flex - 将 CURL 转换为 FLEX HTTP 请求

ajax - 实现基于网络的游戏最安全的技术是什么

javascript - 列未针对移动 View 正确调整大小

jquery - 有没有办法优化 chrome 的视差滚动?

javascript - toLocaleLowerCase() 和 toLowerCase() 的区别

java - flex 不支持 HashMap 吗?

ios - Actionscript:在 iOS 上创建文本字段和填充的性能

flash - ActionScript 的 WordWrap 打破单词