通过在web浏览器窗口中单击照片上传照片


Upload photo by clicking it in web browser window

我到处找,似乎找不到答案:

我目前正在使用Instagram API。我已经设置好了,这样用户就可以登录并查看他们所有的照片。但是,我正在为instagram创建一种照片打印服务,所以我想要它,这样当用户点击照片时,它就会将照片上传到我的服务器。我知道如何用html表单上传PHP,但这是一个奇怪的情况,在这种情况下,html表单对我来说毫无用处。我想我基本上需要选择图像,同时充当提交按钮?我真的不确定,任何帮助都将不胜感激!

让他们点击链接,用图像的url ping你的服务器,这样就可以下载

类似于Mike B的答案,但更突出:

您可以为页面上的每个图像呈现一个不可见的窗体。在每个表单中,都有一个输入字段,其中填充了要提交给系统的图像URL。使用图像点击事件提交它所属的表单。

在PHP服务器端,您的脚本应该接收图像的URL,并请求将其下载到服务器。然后你可以用它做你想做的事。

这是一种方式。我至少还能想出两个。

更新:有更简单的解决方案。请参阅下面Mike的评论。

我不熟悉Instagram API,但有一个休闲建议。据我所知,通过Instagram API,照片会显示在你的页面上,所以你需要一些javascript来获得网址,而图片必须充当提交按钮"<input type="image" src="...the image source here.." alt="Submit button" name="i1">"。PHP代码应该是这样的:

<?php

//original image
$img = $_GET["i1"];

//directory to copy to (must be CHMOD to 777)
$copydir = "/home/user/public_html/directory/";

$data = file_get_contents($img);
$file = fopen($copydir . "blah.gif", "w+");
fputs($file, $data);
fclose($file);

?>

你能给我们看一些代码来帮助我们了解你目前是如何显示图像的吗?我想您总是可以执行类似<input type="submit" style="visibility: hidden;" />的操作,然后将类似onClick=document.forms['NameOfThisForm'].submit();的操作添加到包含该特定图像的<img>标记中。这样,每个图像就有一个表单,您可以添加额外的隐藏元素,将任何进一步的信息传递给服务器,例如用户单击的图像的ID。