【发布时间】:2013-01-21 00:30:07
【问题描述】:
好的,这里是:(我正在第三次更改此帖子的内容以更好地解释)
我的网站是一个图片托管网站,这意味着用户可以上传到我的网站并接收到他/她上传图片的直接链接。
我需要某种 API/方式从我的网站与我的用户进行通信。我希望注册到我网站的用户能够上传图片从他们的网站到我的Image Host,而无需离开他们自己的网站(AJAX、iFrame、cURL、 JSON,不管它需要什么)。
对我的网站的请求应包含&request=api 参数,以便用户从我的upload.php 脚本中获得纯文本。我认为这样可以更轻松地从我的站点获取数据/输出。
因此,基本上,在用户网站向我的 Image Host 发出 POST/FILES 请求后,他们会收到来自我的上传处理脚本的链接,他们需要检索,然后用于自己的需要。
我的问题是:我的注册用户将文件发送到我的服务器没有重新加载页面并取回 URL那个图像。我该怎么做?
我尝试过的:
我所有的尝试都是阻塞,没有继续。
首先,我在两个不同的表中添加了两个新列。我的 users 表 收到了一个 api_key 列,如果用户实际注册它,则该列用于存储 API 密钥。另一列is_api 已添加到我存储图像信息 的表中,只有注册用户将其图像存储在数据库中。通过这个新列(类型为 TINYINT),我想检查来自用户的图像是否通过 API 添加/上传。
用户使用以下参数向我的 Image Host 发送请求:upload.php?submit=true&action=upload&request=api&key=_SOME_API_KEY_。我获取 API 密钥并检查它属于谁 -> 根据该密钥检索用户 ID -> 我将图像存储到我的服务器 -> 我将图像信息存储在我的数据库中(现在有一个用户 ID)-> 我 @ 987654327@出网址。
我在这里的失败是:
- 我无法将 ANYTHING 从第 3 方网站异步发送到我的 Image Host
- 我无法从我的第 3 方网站收到任何回复。
为什么会出现这些失败? 因为我不知道如何实现这两个最重要的步骤。
我的一个想法是停止尝试将 $_FILES[] 发送到我的 Image Host,尝试通过 POST 发送 IMAGE STRING到我的服务器并自己在那里创建图像。我也做不到,这只是一个有时间思考的人的想法。
所以,就是这样:我自己没有解决方案的大问题。
如果您需要更多信息以便更轻松地帮助我,请询问。
谢谢。
更新
如果我能以某种方式(异步)接收文件,我会在数据库中使用值为 1 的 is_api 字段将其注册,以通过 API 将其标记为放置(外部的)。这样,我可以创建一个名为 viewer.php 的新文件,它也可以接受一些参数,例如 viewer.php?request=api&key=_API_KEY_,它会返回一个 JSON 页面,其中包含该 external api 指向最新图像的链接用户。由第 3 方网站通过 JSON 检索页面将非常容易。因此,使用这种方法,我基本上只需要在我的 Image Host 中以某种方式接收图像,并且检索部分不会太难。那么如何通过 POST 向我的 Image Host 发送 IMAGE STRING?
如果我的这个新想法可以利用,请告诉我。
【问题讨论】:
-
您是尝试通过 JSON 或 XML 将链接发送到 Ajax 客户端还是以纯文本形式发送到 Ajax 客户端?
-
我没有尝试使用 JSON,因为我不知道如何使用它,因此提出了问题。我的 AJAX 知识也很有限。
-
听起来它可以在一个 iframe 中非常简单地处理,该 iframe 包含一个回发到图像主机的真实表单。它看起来像 ajax(因为 iframe 阻止了整页发布),您可以将结果页面中的链接作为响应直接返回给 iframe。
-
@Gavin 你能给我举个例子吗?也许你的答案真的有效,然后我可以接受。
标签: php api file file-upload upload