首页 文章

使用 PHP 上传图像

提问于
浏览
0

我正在制作一个表单,如果用户喜欢使用 jquery ajax 和 PHP,用户可以上传图像数据。到目前为止一切都在数据方面很好,但在图像上传 PHP 我有一个问题上传文件到正确的位置。查询工作正常,并将正确的数据提交到表中。你能帮我看一下图片上传吗?我尝试使用一些东西进行调试,但到目前为止一切看起来都正确。

这是我的 php 文件脚本:

if(isset($_POST['discussion_title'], $_POST['discussion_subjects'], $_POST['discussion_textarea'])) {
    $user_id = (int)$_SESSION['user_id'];
    $title = mysql_prep($_POST['discussion_title']);
    $link = mysql_prep($_POST['discussion_link']);
    $subject = mysql_prep($_POST['discussion_subjects']);
    $discussion = mysql_prep($_POST['discussion_textarea']);
    $discussion_timestamp = time();

    if ($_FILES["discussion_image"]["name"] != "") {
        $test = explode(".", $_FILES["discussion_image"]["name"]);
        $extension = end($test);
        $name = rand(100, 9999999999);
        $file_temp = $_FILES['discussion_image']['tmp_name'];
        $file_path = 'uploaded_pictures/uploads/' . $user_id . '/'. $name .'.'.$extension;
        $file_path = mysqli_real_escape_string($connection, $file_path);
        move_uploaded_file($file_temp, $file_path); // move_uploaded_file() is a built in function of PHP

        $query = "INSERT INTO discussions_table (user_id, title, link, image_link, subject, discussion, discussion_timestamp) VALUES ($user_id, '$title', '$link', '$file_path', '$subject', '$discussion', $discussion_timestamp)";

        //$save_path = "uploaded_pictures/uploads/" . $user_id ."/$user_id.png";
        $save_path = 'uploaded_pictures/uploads/' . $user_id . '/'. $name.'.'.$extension;
        $save_path_small = "uploaded_pictures/uploads/" . $user_id . "/" . $name.'small.'.$extension;
        create_thumbnail($file_path, $save_path, 250, 250); // creates thumbnail for profile picture
        create_thumbnail($file_path, $save_path_small, 50, 50); // creates thumbnail for small user picture
        var_dump($_FILES['discussion_image']['tmp_name']);
    } else {
        $query = "INSERT INTO discussions_table (user_id, title, link, subject, discussion, discussion_timestamp) VALUES ($user_id, '$title', '$link', '$subject', '$discussion', $discussion_timestamp)";
    }
    $result = mysqli_query($connection, $query);
}

这是 alert()中给出的错误,因为我使用了 var_dump
警告:move_uploaded_file(uploaded_pictures/uploads/20/499297822.jpg)[3]:无法打开流:在D: wampwwwasserterwidgetsdiscussion_board_submit.php ********中没有此类文件或目录

警告:move_uploaded_file() [4]:无法在D: wampwwwasserterwidgetsdiscussion_board_submit.php 行上将'D: wamptmp_ php260.tmp'移动到'uploaded_pictures/uploads/20/499297822.jpg'

警告:getimagesize(uploaded_pictures/uploads/20/499297822.jpg)[5]:无法打开流:没有这样的文件或目录****:\ wamp\www\asserter\includes\create_thumbnail.php ********

警告:getimagesize(uploaded_pictures/uploads/20/499297822.jpg)[6]:无法打开流:D: wampwwwasserterincludescreate_thumbnail.php ********中没有此类文件或目录
string(22)“D:\ wamp\tmp\php260.tmp”

2 回答

  • 0

    确定它有效。谢谢大家的帮助。问题在于目录,我应该返回../以便能够上传图像

  • 0

    如何在 php 中创建目录? - 使用它来创建目录,我已在那里回答。它将帮助您为 multi-user 创建目录。稍后您可以获得哪些用户上传了所有文件。

    for error 未定义的偏移:在 php 中你应该使用 isset()为$src_pos [3],$new_size [4],$new_size [5],$size [6],$size [7]设置值

相关问题