javascript - Filedrop.js 没有成功消息

标签 javascript php jquery mysqli filedrop.js

我正在使用 filedrop.js 作为图像上传脚本。 我在这里资助一个脚本:https://tutorialzine.com/2011/09/html5-file-upload-jquery-php

项目中有一个 file_post.php,我想更改它以将一些信息(如文件名)保存到数据库中。

这是我的 post_file.php :

    <?php

// If you want to ignore the uploaded files, 
// set $demo_mode to true;

$demo_mode = false;
$upload_dir = 'uploads/tmp/';
$allowed_ext = array('jpg','jpeg','png','gif');


if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){
    exit_status('Error! Wrong HTTP method!');
}


if(array_key_exists('pic',$_FILES) && $_FILES['pic']['error'] == 0 ){

    $pic = $_FILES['pic'];

    if(!in_array(get_extension($pic['name']),$allowed_ext)){
        exit_status('Only '.implode(',',$allowed_ext).' files are allowed!');
    }   

    if($demo_mode){

        // File uploads are ignored. We only log them.

        $line = implode('       ', array( date('r'), $_SERVER['REMOTE_ADDR'], $pic['size'], $pic['name']));
        file_put_contents('log.txt', $line.PHP_EOL, FILE_APPEND);

        exit_status('Uploads are ignored in demo mode.');
    }


    // Move the uploaded file from the temporary 
    // directory to the uploads folder:

    if(move_uploaded_file($pic['tmp_name'], $upload_dir.$pic['name'])){

        //My added code 

include('/var/www/html/board/SSI.php');

$userName = $context['user']['name'];
$content_id = $_COOKIE["contentid"];
$pic_name = $pic['name'];
$pic_code = $content_id;
$pic_path = $pic_name;


$db_host = "******";
$db_name = "******";
$db_user = "******";
$db_pass = "******";

$db = mysqli_connect("$db_host","$db_user","$db_pass","$db_name") or die("Error " . mysqli_error($db));

$stmt = $db->prepare("INSERT INTO `User_pics` (content_id, path, user_id,  user_name) VALUES (?, ?, ?, ?)");
$stmt->bind_param('ssss', $pic_code,
$pic_path,
$context['user']['id'],
$context['user']['name']);
$stmt->execute();
$stmt->close();

        //end of my added code





        exit_status('File was uploaded successfuly!');
    }

}

exit_status('Something went wrong with your upload!');


// Helper functions

function exit_status($str){
    echo json_encode(array('status'=>$str));
    exit;
}

function get_extension($file_name){
    $ext = explode('.', $file_name);
    $ext = array_pop($ext);
    return strtolower($ext);
}
?>

在我添加 mysqli 部分后,成功消息不再显示。 在图像上传时,进度条停在大约 50% 处。文件已上传,信息已保存到数据库中,但我没有得到成功响应,我需要处理后续步骤。请帮忙! 谢谢。

最佳答案

感谢您的关注, 我花了两天时间寻找解决方案,在我在这里提问后我找到了答案;)

问题是包含以 UTF-8 编码的 SSI.php。 这是 Json 编码响应中出现错误的原因。

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

我的解决方案是: 我为用户 ID 和用户名创建了一个 cookie,因此我能够删除包含。在此之后,一切都很好。如果有人有同样的错误,只需创建一个 cookie,在其中显示您的上传表单,上传后将其删除。

感谢社区,祝您度过美好的一天;)

关于javascript - Filedrop.js 没有成功消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44850251/

相关文章:

javascript - 有效的 javascript 对象属性名称

JavaScript 背景图片

javascript - 这个受密码保护的下载脚本安全吗?

javascript - bootstrap 和 jquery 验证冲突

JavaScript - 如何打开新页面并将 JSON 数据传递给它?

javascript - 无限循环 jQuery 函数

php - 找不到 Laravel 404 页面,路由存在

php - 使用 php <?> explode 错误

jquery - jqgrid 卡住列可以与树形网格一起使用吗?

javascript - 鹡鸰流场 block : injecting jQuery into the Wagtail Admin