javascript - 提交后显示图片URL

标签 javascript php jquery ajax

我有一个表单,用户可以在其中提交图像,提交后图像 URL 将显示在输入文本字段中。表单数据通过 Ajax 转发到 PHP。然后图像被上传到服务器。我已经实现了提交系统,但我不知道如何在输入文本字段中显示上传的 URL,以便用户可以看到它。我不希望页面刷新,这一切都是动态发生的。

这是我的代码:

HTML

<form class="image_upload" method="post" action="">
    <input name="server_upload" type="file">
     <input type="text" name="image_url" readonly>
    <input type="submit" value="UPLOAD TO SERVER">
</form>

jQuery/Ajax

$('.image_upload').on('submit', function(e) {
        e.preventDefault();
        e.stopImmediatePropagation();
        if ($('.image_upload').valid())
        {

            $.ajax({
              type: 'POST',
              url: '',
              data: new FormData(this),
              processData: false,
              contentType: false,
              success: function(data) {

              }
            })
     }
 })

PHP

if (isset($_FILES["server_upload"]))
    {
        $name = $_FILES["server_upload"]["name"];
        $tempName = $_FILES["server_upload"]["tmp_name"];
        $target_file = $_SERVER['DOCUMENT_ROOT'] . "/stories/media/images/$name";
        if (getimagesize($target_file) == true)
        {
            $ext = pathinfo($name, PATHINFO_EXTENSION);     
            $name = basename($name, "." . $ext);
            $name = $name . uniqid() . "." . $ext;
            $target_file = $_SERVER['DOCUMENT_ROOT'] . "/stories/media/images/$name";
        }

        move_uploaded_file($tempName, $target_file);
    }

我希望在用户提交图像后 $target_file 显示在输入文本表单字段中。我该如何实现这个目标?

最佳答案

您可以选择在行后回显 $target_file

move_uploaded_file($tempName, $target_file);
echo $target_file;

然后在你的 ajax 成功中,你可以这样使用:

$.ajax({
    type: 'POST',
    url: '',                      // (*)
    data: new FormData(this),
    processData: false,
    contentType: false,
    success: function(data) {
        $('input[name=image_url]').val(data);
    }
});

只要表单提交不会将您带到另一个页面,数据就会是您回显的内容。

(*)注释:

  • 由于 url 为空(默认情况下为当前页面),因此上述代码将返回整个页面。如果您将 PHP 放入另一个文件中并像 url: 'file.php' 那样调用它,它将正常运行。

关于javascript - 提交后显示图片URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38779628/

相关文章:

javascript - LeadLander Formallyze_init.js Javascript 外部文件

php - 从 mysql 中提取链接并使其可点击?

php - 如何找出特定位置的特定日期时间的时区?

javascript - 根据从下拉列表中选择的选项为文本字段指定一个值

javascript - 父组件中的 Ember 数据更改未反射(reflect)在 UI 上

javascript - ExtJs4 MVC,组合框的数据存储

javascript - 在 jsplumb 中移动连接器边缘

javascript - 一旦 onclick 函数小于另一个变量,如何禁用它?

php - 无法访问我的 phpmyadmin

javascript - 动态添加的对象属性未在 Javascript 中添加