如何使用javascript/ajax将图像URL转换为DOM文件对象?

如何使用javascript/ajax将图像URL转换为DOM文件对象?,javascript,html,dom,Javascript,Html,Dom,我有一个脚本,它允许我使用jcrop裁剪图像。 为了实现这一点,我必须使用输入类型文件从我的计算机上传一幅图像。我想扩展我的应用程序的功能,允许用户从他们的facebook albuns中选择照片,这段代码正在工作,但它会返回图像的URL。 从URL我创建了一个像这样的图像对象 var oImage = document.getElementById('preview'); 但这是一个图像对象,而不是一个文件对象,它不允许我获得一些文件属性,如oImage.size和oImage.type。

我有一个脚本,它允许我使用jcrop裁剪图像。 为了实现这一点,我必须使用
输入类型文件
从我的计算机上传一幅图像。我想扩展我的应用程序的功能,允许用户从他们的facebook albuns中选择照片,这段代码正在工作,但它会返回图像的URL。 从URL我创建了一个像这样的图像对象

var oImage = document.getElementById('preview');
但这是一个图像对象,而不是一个文件对象,它不允许我获得一些文件属性,如
oImage.size
oImage.type
。 原始代码是这样的

<input type="file" name="image_file" id="image_file" onchange="fileSelectHandler()" />
现在我有了一个回调函数,它是一个Facebook图像URL,我希望它能像我从计算机上传图像一样工作,因为这个输入类型的文件会提交到服务器

var oImage = document.getElementById('preview');
oImage.src = photo.source;
其中
photo.source
是我的URL


所以我的问题是:如何使用javascript/ajax将URL转换为文件类型?我还需要将该类型输入到文件输入中,因为这是一个要提交的表单。提前感谢。

您应该将URL发布到您的服务器,然后您可以使用PHP下载远程图像并对其进行操作

提示代码:

if(isset($_POST['image_url'])){
    //Make sure to validate $_POST['image_url'] before using it
    $image = file_get_contents($_POST['image_url']);
} else {
    $image = file_get_contents($_FILES["file"]["tmp_name"]);
}
我通常使用JQuery, 示例ajax帖子:

$.post('server.php', {image_url:photo.source}, function(data){
  //do stuff on server response
});

你想用javascript在某人的远程计算机上创建一个本地文件吗?霍布,这不是我想要的,现在我明白我问的意思了。事实是,从一个URL,我需要,不知何故,有一个$\u FILES变量,它的内容到upload.php文件。我有服务器端访问权限。也许您需要imageObject.src=URL如何从URL向服务器发布文件?使用AJAX可以做到这一点吗?(我真的不想重新加载页面)
$.post('server.php', {image_url:photo.source}, function(data){
  //do stuff on server response
});