我有一个脚本,允许我使用jcrop裁剪图像。
为此,我必须使用input type file
从我的计算机上传图像。我想扩展我的应用程序的功能,允许用户从他们的facebook albuns中选择照片,这段代码是有效的,但它返回了我的图像的URL。
从URL我创建一个像这样的图像对象
var oImage = document.getElementById('preview');
但这是一个图像对象,而不是一个文件对象,它不允许我获得oImage.size
和oImage.type
等文件属性。
原始代码是这个
<input type="file" name="image_file" id="image_file" onchange="fileSelectHandler()" />
和javascript代码
function fileSelectHandler() {
var oFile = $('#image_file')[0].files[0];
...
}
现在我有一个函数,回调是一个Facebook图像URL,我希望它能像我从我的计算机上传图像一样工作,因为这个输入类型文件被提交到服务器。
var oImage = document.getElementById('preview');
oImage.src = photo.source;
photo.source
是我的网址。
所以我的问题是:如何使用javascript / ajax将URL转换为文件类型?我需要将该类型放入文件输入中,因为这是一个将被提交的表单。提前谢谢。
答案 0 :(得分:1)
您应该将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, JQuery示例ajax帖子:
$.post('server.php', {image_url:photo.source}, function(data){
//do stuff on server response
});