Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过ajax将图像上传到Web服务器,并将给定的文件名插入数据库_Php_Sql_Ajax - Fatal编程技术网

Php 通过ajax将图像上传到Web服务器,并将给定的文件名插入数据库

Php 通过ajax将图像上传到Web服务器,并将给定的文件名插入数据库,php,sql,ajax,Php,Sql,Ajax,我目前正在从事一个项目,需要以下几点 我需要能够上传一个图像(进一步的多个范围) (图片) 对于Web服务器的某个区域,请将上载图像的名称重命名为 我希望它们是什么(即我用say声明的特定字符串) 多个图像的增量(e.t.c) 通过ajax完成,因为我不想重新加载页面 将返回的文件名添加到数据库中 我以前用php上传过图像,但是使用rand生成一个名称并通过post返回,但不是通过ajax,我以前分别完成了上面的所有部分,但不是全部用于获取 我在谷歌上做了一个快速搜索,但没有一个像我希望的那

我目前正在从事一个项目,需要以下几点

  • 我需要能够上传一个图像(进一步的多个范围) (图片)
  • 对于Web服务器的某个区域,请将上载图像的名称重命名为 我希望它们是什么(即我用say声明的特定字符串) 多个图像的增量(e.t.c)
  • 通过ajax完成,因为我不想重新加载页面
  • 将返回的文件名添加到数据库中
我以前用php上传过图像,但是使用rand生成一个名称并通过post返回,但不是通过ajax,我以前分别完成了上面的所有部分,但不是全部用于获取

我在谷歌上做了一个快速搜索,但没有一个像我希望的那样工作

我喜欢这个工作,但我不能为我的生活让它工作


谢谢:)

我可以给你一个概念,而不是实际的代码,我已经做到了这一点,没有任何问题

  • 创建用于文件上载的表单
  • 在页面上创建iFrame(隐藏,高宽1px),使其在页面上不可见
  • 将Upload form target设置为该框架,这样当您提交数据时,它将在iframe中加载页面
  • 创建自己的上传文件接收脚本,它将包含会话和其他变量
  • wihch文件将接收图像,存储图像并更新数据库
  • 在有上传表单的页面上,向iframe onPageLoad添加一个脚本,这样当iframe获取内容时,它将触发一个JS,通过这个JS,您可以调用另一个ajax调用来获取上传的图像并将其显示在页面上
  • 如果你是jQuery专家,你可以用这个概念创建自己的插件


    如果您有问题,请告诉我

    据我所知,仅使用AJAX上传是不可能的。但是,有一些解决办法。您可以使用普通文件上载(有关详细信息,请参阅)。然后,您的浏览器将尝试显示您刚刚发布的帖子的响应。因此,您需要将表单的框架目标指向一个新的不可见iframe,这样您的页面内容就不会被更改。您可以使用对帖子的响应向浏览器发送新的javascript代码,例如,浏览器可以为用户显示一些反馈或显示您刚刚上传的图像。原型库()将帮助您完成其中一些任务


    上面的链接还将提示您如何重命名文件、将其存储在web服务器上,甚至将其存储在db中。不推荐使用后一种方法。

    尝试我想学习如何做到这一点,而不是使用我必须破解的预先构建的东西来以我想要的方式工作。不管怎样,还是谢谢你。站在艾米尔·马哈茂德的一边吧。没有其他简单的方法可以做到这一点。。或者你需要制作一个正在发布的flash文件。。uploadfy做你想做的一切。那么facebook是如何做到的呢?不使用flash(用于最大的跨浏览器兼容性)-或iFrame。。。有很多方法可以做到这一点,它们是为特定目的而构建的,因此我提出了请求。感谢@Tricker支持这一观点。我还听说PHP5.4对文件上传和他们的进度条非常友好。。。这么老?没有必要使用它们。您可以将图像设置为从ajax响应加载……这在没有iFrame的情况下是可能的。我在原始帖子中发布的链接没有使用iframe…亲爱的@GraemeLeighfield转到这里,转到第484行,它正在JSKINLD中创建iframe。我再次看到它,IE6的意思是告诉我iframe的名称必须是唯一的,就在上面的第489行,你会看到SAFARIAamir,你显然不理解我的需求。请不要再重复我的问题了。我是来寻求帮助的,但你必须明白,只有通过iFrame或flash才能做到这一点,没有其他办法。我不会在这里发表更多评论。非常感谢。