【问题标题】:prove file existing via php and javascript通过 php 和 javascript 证明文件存在
【发布时间】:2014-03-17 04:15:37
【问题描述】:

我正在尝试编写这个想法:您有一个下载按钮。当您单击按钮时,它应该证明文件是否存在。当它存在时,它应该开始下载文件,如果不存在,那么应该有一个警报。

我知道如何通过 PHP 证明文件是否存在:

if (file_exists(dirname(__FILE__).'/downloads/rawData.zip')) {
   echo '<script type="text/javascript" language="Javascript">
   location="downloads/rawData.zip"
   </script>'
   ;
} else {
   echo '<script type="text/javascript" language="Javascript"> 
alert("Sorry, no file.") 
</script>';
}

但是,问题在于按钮是在 html 文件中编码的,并且不应加载新页面,因为 php 无法处理点击事件。

有什么办法可以解决这个问题吗?

【问题讨论】:

  • 硬编码文件名如何引用按钮
  • 它实际上没有被引用。我曾经引用一个只加载文件的javascript函数。
  • 那么真正的问题是什么。你触发一个按钮点击,然后触发上面的脚本?
  • 当我引用 php 文件时,它会在新页面中加载。有更好的解决方案吗?

标签: php file file-exists


【解决方案1】:

您需要的是像 AJAX 这样的解决方案。一旦用户点击按钮,你就向你的 PHP 脚本发出请求,然后返回一个值,你可以根据该值进行下一步。

这是一个关于如何使用 jquery 库实现这一目标的示例。

$('#form').submit(function(event) {
    event.preventDefault();
    $.ajax({
       type: 'POST',
       url: 'file-exists.php',
       data: $(this).serialize(),
       dataType: 'json', // could be plain-text as well; depends on your use-case
       success: function (data) {
          console.log(data);
          //do whatever you want based on this data
       }
     });
});

您也可以避免使用该库,但这会使解释变得更加复杂。您可以在此处阅读有关如何执行此操作的更多信息:http://blog.mgechev.com/2011/07/21/ajax-jquery-beginners/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 2015-06-08
    • 2011-01-12
    • 2011-07-24
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多