我正在制作一个表单,如果用户喜欢使用 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 回答
确定它有效。谢谢大家的帮助。问题在于目录,我应该返回../以便能够上传图像
如何在 php 中创建目录? - 使用它来创建目录,我已在那里回答。它将帮助您为 multi-user 创建目录。稍后您可以获得哪些用户上传了所有文件。
for error 未定义的偏移:在 php 中你应该使用 isset()为$src_pos [3],$new_size [4],$new_size [5],$size [6],$size [7]设置值