调试由jQuery调用的PHP文件

时间:2011-07-05 05:59:35

标签: php jquery debugging upload uploadify

我正在使用uploadify(一个jQuery上传)脚本,该脚本在后端基本上有一个PHP文件。我想对PHP代码进行某种调试(例如,看看我在PHP文件中得到了什么样的错误(当它被jQuery调用时),但我不知道如何打印错误。例如原始的PHP文件是:

<?php
if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_GET['folder'] . '/';
    $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
    move_uploaded_file($tempFile,$targetFile);
}   
?>

现在举例来说,我在上面的代码中在move_uploaded_file()之前添加一行。

die("die befor moving file");

当脚本调用此PHP文件时,它不会转到下一行,但它也不会打印消息。如何打印错误消息?如果不能这样做,我可以显示一些javascript警报消息。想法是知道PHP文件中的错误在哪里。感谢。

这是前端上传页面代码:

<script type="text/javascript">

$(document).ready(function() {
    $("#fileUpload").fileUpload({
        'uploader': 'uploadify/uploader.swf',
        'cancelImg': 'uploadify/cancel.png',
        'script': 'uploadify/upload.php',
        'folder': 'files',
        'multi': false,
        'displayData': 'speed'
    });

});

</script>
</head>

<body>
    <fieldset style="border: 1px solid #CDCDCD; padding: 8px; ">
        <legend><strong>Uploadify Sample</strong></legend>
        <h2>Single File Upload</h2>
        <p>Display speed</p>
        <div id="fileUpload">You have a problem with your javascript</div>
    </fieldset>
</body>
</html>

4 个答案:

答案 0 :(得分:1)

如果您使用apache服务器获取httpd.conf文件并搜索ErrorLog日志位置并打开日志文件,您将收到正确的错误消息以调试该问题。

答案 1 :(得分:1)

您可以使用FirePHP库+ Firefox扩展程序在PHP中打印浏览器中显示的错误消息。

答案 2 :(得分:0)

上传过程实际上是由flash“uploadify / uploader.swf”完成的,一些flash uploader带有调试模式,所以你可以看到来自PHP的响应。

最糟糕的情况是,您可以告诉PHP使用put_file_contents

将一些调试行写入外部日志文件

[编辑:]根据此页面http://www.uploadify.com/forums/discussion/2085/built-in-debug/p1 Uploadify没有调试模式。所以你最好用file_put_contents写一个日志文件 此Flash也像普通的HTML表单一样工作(除了flash可以检索上载的百分比),因此您可以创建一个简单的HTML表单,通过PHP发送文件,如:

<html>
<head>
   <title>Upload file</title>
</head>
<body>
   <form id="form" method="post" enctype="multipart/form-data" action="yourFile.php">
       <input type="file" name="Filedata" />
       <input type="submit" value="Upload" />
   </form>
</body>
</html>

答案 3 :(得分:0)

你可以这样做:

$("#fileUpload").fileUpload({
   ...
   'onComplete': function(a, b, c, data, e){
       alert(data);
    }
});

希望这会有所帮助。干杯