【问题标题】:I am getting an undefined instead of filename我得到一个未定义而不是文件名
【发布时间】:2012-05-15 13:16:00
【问题描述】:

我有一个应用程序here 的链接。现在我要做的是,当用户单击“上传”按钮时,它会显示一个加载栏,在该栏下方它将显示正在上传的文件的名称和旁边的“取消”按钮因此用户可以根据需要取消上传。

但问题是它根本没有检索文件名。它显示为未定义。所以我的问题是,我怎样才能在取消按钮旁边显示文件名而不是未定义?

下面是开始上传和存储取消按钮功能的javascript函数:

function startImageUpload(imageuploadform, imagefilename){
  $('.imagef1_cancel').eq(window.lastUploadImageIndex)
    .html('' + imagefilename + 
          '<button type="button" class="imageCancel" cancel_image_file_name="' + 
          imagefilename + '">Cancel</button>');
  $('.imagef1_cancel').eq(window.lastUploadImageIndex).find(".imageCancel").on("click", 
    function(event) {
      var cancel_image_file_name = $(this).attr('cancel_image_file_name');
      console.log(cancel_image_file_name) 
      jQuery.ajax("cancelimage.php?imagefilename=" + cancel_image_file_name)
        return stopImageUpload(2);
  });     
  return true;
}

下面是cancelimage.php 脚本,它应该在其中检索文件名:

<?php

$cancel_image_file_name = $_GET["imagefilename"];

?>

【问题讨论】:

  • 向我们展示从浏览器中的视图/源代码生成的 HTML,而不是 PHP 模板,这样我们就可以看到浏览器实际看到的内容。
  • 使用$('input[type=file]').val()时返回要上传的文件名。
  • 它应该可以正常工作....你能把fireBug的结果贴出来看看请求吗
  • @Raminson 我不能使用$('input[type=file]').val()。这样做的原因是假设我上传了一个文件“Tulips.png”,然后再次上传了相同的文件,在服务器中它会将其保存为“Tulips_2.png”,如果我使用$('input[type=file]').val(),这将是不正确的提取该值,因为它仍将其声明为“Tulips.png”
  • @TheHulk fireBug 中没有说明错误。

标签: php javascript jquery ajax dom


【解决方案1】:

当你渲染你的 html 时

例如

  // html 
     <img src="bla_bla_bla" name="img_1.jpg" id="x" >

 // in your JS
     $imgName = $("#x").attr('name');

然后你就可以用你的 Ajax 正常发送图片名称了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 2016-02-20
    • 2012-12-31
    相关资源
    最近更新 更多