0

I actually want to upload an image to a server. To achieve this, i want the user just paste the image into chrome (the image is a print screen in fact), and then i post the stream to a php page, convert the stream as an image, and then upload it.

How can i achieve this web application ?

Today i have develop some differents parts : I used this script, and i create the Upload.php page which gets the post variable and try to Create and image.

The problem i have, is that when i post the data, i only get a blob. I would like to get a base64 stream.

Can you help me ? Thanks in advance.

4

2 回答 2

1

我不确定您为什么要专门寻找“base 64 流”。如果您Blob通过 ajax 将其发送到您的服务器,那么就您的服务器而言,它是一个文件。对待它与任何其他上传服务器端没有区别。ABlobFile没有name属性的 a。这可能有点过于简单化了,但我的意思是,就您的服务器所知,这实际上只不过是一个文件。

假设您正在发送一个多部分编码的请求,我想指出,filename当您上传的项目是 aBlob而不是 a时,大多数用户代理会将请求中项目的 Content-Disposition 标头的属性设置为“blob”文件。在某些浏览器中,可以通过FormData's appendmethod中的第三个参数更改此值,但我现在还不会依赖它。

另请注意,如果您对已经处理所有这些的库感兴趣,我会维护Fine Uploader,它本机支持通过在 Chrome 中粘贴来上传图像。

于 2013-07-31T16:01:38.183 回答
0

要回答这个老问题:使用 chrome 从剪贴板发布图像与发布已删除的文件几乎相同 - 除了图像/blob 没有属性“名称”和“lastModified”。

var entry = items[i].webkitGetAsEntry();
if (!entry) entry = items[i].getAsFile(); 

if (entry instanceof Blob) /** CHROME pastet Bilder als Blob **/
{
    entry.isFile = true;
    entry.lastModifiedDate = new Date();
    entry.name = ""+new Date().getTime()+"."+entry.type.split('/')[1];
}

if (entry.isFile)
{
//handle dropped file
}
于 2017-03-21T14:31:55.037 回答