在 AJAX 中将图像发布到 PHP

2024-01-10

我想使用 AJAX 将图像发送到 php 文件。

这是我的JS code:

$.ajax({
    type: "POST",
    url: "http://website.com/add-image.php",
    data: "img=" + img
})

那是我的PHP

<?php
if ( !empty( $_POST["img"] ) )
{
    move_uploaded_file( $_POST["img"], "image.png" );
}
?>

但它不起作用。

我也尝试更换move_uploaded_file by imagepng or imagejpg但仍然没有结果。

如何将图像保存到我的服务器上? 谢谢


如果您只是想让它发挥作用,我推荐 Ravishanker Kusuma'sHayageek jQuery File Upload plugin. 我通常不推荐插件,但这个插件非常棒。它几乎为您完成所有工作。为什么要重新发明轮子?

http://hayageek.com/docs/jquery-upload-file.php http://hayageek.com/docs/jquery-upload-file.php

他将这个过程分为四个简单的步骤,基本上如下所示:

查找 //1 //2 //3:

<head>
  // (1) Load the js files (note that it requires jQuery, which we also load)
    <link href="http://hayageek.github.io/jQuery-Upload-File/uploadfile.min.css" rel="stylesheet">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="http://hayageek.github.io/jQuery-Upload-File/jquery.uploadfile.min.js"></script>   // (1)
</head>
<body>
    <div id="fileuploader">Upload</div>  // (2) Create DIV
    <script>
        $(document).ready(function(){
            $("#fileuploader").uploadFile({  // (3) initialize plugin
                url:"my_php_processor.php",
                fileName:"myfile"
            });
        });
    </script>
</body>

最后(第四)步是创建一个 PHP 文件,其名称与上面在 jQuery 代码中指定的名称相同(在本例中my_php_processor.php) 接收并处理文件:

my_php_processor.php:

<?php
    $output_dir = "uploads/";
    $theFile = $_FILES["myfile"]["name"];
    move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir.$fileName);

注意之间的关系myfile在 PHP 中($_FILES["myfile"]) 和文件名myfile在 jQuery 代码块中指定。

在 Hayageek 网页上,研究upload.php上的例子Server tab.

请注意,您还可以将其他变量传递给my_php_processor.php处理器文件通过使用动态表单数据 http://hayageek.com/docs/jquery-upload-file.php#formdata。请参阅另一个示例:

$("#fileuploader").uploadFile({
    url:"my_php_processor.php",
    fileName:"myfile",
    dynamicFormData: function(){
        return {
            //my_php_processor.php will receive POST vars below
            newSubj: $("#newSubj").val(),
            newBody: $("#newBody").val(),
        };
    },
    onSuccess:function(files,data,xhr,pd){
        //files: list of files
        //data: response from server
        //xhr : jquery xhr object
        alert(xhr.responseText); //displays data ECHOd by `my_php_processor.php`
    }
});

my_php_processor.php:

<?php
    $n = $_POST['newSubj'];
    $b = $_POST['newBody'];
    $uploadedFile = $_FILES["myfile"]["name"];
    //etc.
    echo 'This will display in the alert box';

jsFiddle Sample Code http://jsfiddle.net/e18sfhy3/ - Click on Image Example http://jsfiddle.net/e18sfhy3/1/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 AJAX 中将图像发布到 PHP 的相关文章

随机推荐

  • Cordova 项目中检测到 Android Studio 项目

    我在命令行中创建了一个cordova项目 我添加了android平台 当运行 科尔多瓦准备安卓 or 科尔多瓦构建安卓 我收到以下消息 检测到 Android Studio 项目 并且构建尚未开始 请问问题是什么 请帮助 科尔多瓦版本 8
  • TypeDescriptor.GetConverter() 不返回我的转换器

    我有一个简单的类型 带有在运行时编译和加载的自定义类型转换器 但 TypeDescriptor GetConverter 找不到正确的转换器 这是一个独立的例子 using System using System ComponentMode
  • 如何使用Python 3.4和SIP 4.19.1安装PyQt5?

    我需要使用安装在 XP 机器上的 Python3 4 现在我正在尝试使用Python34在Win10中安装PyQt5 然而 当我跑步时 pip3 install PyQt5 I get 找不到任何满足 SIP gt 4 19 1 要求的下载
  • 为什么 std::wofstream 不将所有 wstring 打印到文件中?

    我有一个std wstring其大小为 139 580 199 个字符 为了调试 我使用以下代码将其打印到文件中 std wofstream f L C some file txt f lt lt buffer f close 之后注意到字
  • 当声明对 Int 数组的引用时,为什么它必须是对 const 指针的引用?

    注意 我正在使用 g 编译器 我听说它非常好并且应该非常接近标准 假设您声明了一个整数数组 int a 3 4 5 6 现在假设您确实想声明对该数组的引用 不管为什么 除了 Bjarne 说该语言支持它 案例 1 如果你尝试 int ra
  • 如何学习Linux无线驱动(mac80211)的结构?

    Linux无线驱动mac80211中有这么多的结构 像struct net device struct ieee80211 hw struct ieee80211 vif and struct ieee80211 local等等 如此多的结
  • ruby on Rails 是否有像 ASP.NET MVC 一样的客户端验证 [重复]

    这个问题在这里已经有答案了 在 ASP NET MVC 中 您可以使用数据注释模型设置客户端验证 这类似于 ruby on Rails 中的验证 然而 创建了一些不显眼的 JavaScript 钩子 可以自动连接表单上的客户端验证 Ruby
  • 如何使用 window.caches 保存窗口对象中的页面?

    大多数保存 app shell 的示例都显示了服务工作线程的过程 但是我注意到您还可以从窗口访问缓存对象 所以我的问题是 我可以从页面本身保存页面以供离线使用吗 如果可以 如果可能的话 服务人员的意义何在 这里存在一个先有鸡还是先有蛋的问题
  • 使用 git 进行 VS2010 项目:无法添加文件 *.opensdf

    我正在使用 git 跟踪 VS2010 中的 C 项目 我正在使用 stackoverflow 上找到的忽略模式 它通常不排除 opensdf 文件 不幸的是 当尝试提交文件时 我收到以下错误 error open foo opensdf
  • 赶上现代编程技术的一种方法

    我已经从事非专业编程大约 23 年了 发现我有点陷入困境 我找到了一个我喜欢的工具 并且年复一年地保持这种状态 不幸的是 这意味着我的编程落后于时代 我本身并不直接计划进行专业编程 但是 能够开发客户端 最近希望迁移到云 应用程序以供我的客
  • 如何从子域中删除主域 cookie

    是否可以从子域中删除主域 cookie 我正在使用单点登录 注销时我想删除主域 cookie 据我所知 你不能这样做 但是您不能将注销调用指向主域吗 想必您已经在登录调用中执行此操作 以便首先获取主域 cookie
  • 带有表行的 Javascript Onclick

    我的 JScript 代码有问题 我试图循环遍历表中的所有行并添加一个onclick事件 我可以得到onclick要添加的事件 但有几个问题 第一个问题是所有行最终都设置了错误的参数onclick event 第二个问题是它只能在 IE 中
  • 点与流程图上的 x 轴不对齐

    我有浮点数据 其中 x 轴上的点与线条不对齐 specifically take a look at this photo 这是我正在使用的原始数据 0 1327305600000 1989 1 1327392000000 3222 333
  • 我的文本框以编程方式添加在页面重新加载后丢失值后面的代码中。有什么办法可以解决这个问题吗?

    就像这个主题一样 我在通过按钮上的事件创建文本框时遇到问题 然后在重新加载后丢失了文本框中的值 我的代码 protected void Page Load object sender EventArgs e if IsPostBack Se
  • Android 片段:空构造函数真的需要吗?

    我有一个带有寻呼机和 FragmentStatePagerAdapter 的活动 我需要跨多个页面滑动 众所周知 这个适配器一次创建 3 个片段实例 一个是要显示的 一个是上一个 一个是下一个 我的活动使用只有一个构造函数的片段运行得非常好
  • 华为在手机锁定时关闭后台应用程序

    这是我第一次在这个论坛上提问 p 我制作了一个Android应用程序 它必须在后台运行 即当手机处于待机状态时才能恢复用户的位置 我使用服务和唤醒锁 该应用程序适用于SAMSUNG但我注意到HUAWEI如果应用程序不在受保护的应用程序列表中
  • Primefaces selectOneMenu 转换器已调用但不工作

    我看过其他问题this https stackoverflow com questions 17774367 selectonemenu converter and this https stackoverflow com question
  • 谷歌colab中的Python 3.5

    我正在 google colab 中运行用于深度学习的 python 代码 该代码需要 Python 3 5 如何在 google colab 中安装 Python 3 5 版本 这对我有用 apt get install python3
  • 我如何知道使用 kubectl 进入 kubernetes pod 的入口点或 cmd?

    我现在正在学习kubernetes 我想进入远程集群中的一个pod 但是 我不知道它的入口点 我找不到它使用 kubectl 描述 pod podname 如果你想访问Container POD 中的shell 可以使用以下命令 kubec
  • 在 AJAX 中将图像发布到 PHP

    我想使用 AJAX 将图像发送到 php 文件 这是我的JS code ajax type POST url http website com add image php data img img 那是我的PHP 但它不起作用 我也尝试更换