我的脚本有问题。它在我的托管服务器中上传图像。第二天或下周托管服务器缺少已创建的包含图像的文件夹,当然并非所有图像 - 18-19% 的图像持续 2 周。我问他们。他们告诉我——问题出在我的 php 代码中。如果有人可以帮助我会很高兴。可以我在 mkdir() 中添加一些 0777 吗????我不知道。我一直在想...
<?php
if (isset($_FILES['myfile'])) {
$ip = getRealIpAddr();
$usernameupload = $user_data['username'];
$title = sanitize($_POST['title']);
$description = sanitize($_POST['description']);
if (empty($_POST['folder']) === true) { $folder = sanitize($_POST['folder_option']);} else { $folder = sanitize($_POST['folder']);}
$date = date('M-d-Y');
$code = "";
$errors = array();
$allowed_ext =array('jpg', 'jpeg', 'png', 'gif');
$file_name = $_FILES['myfile']['name'];
$file_size = $_FILES['myfile']['size'];
$file_tmp = $_FILES['myfile']['tmp_name'];
$extension=explode('.',$file_name);
$file_ext=strtolower(end($extension));
if (isset($_POST['submitupload'])) {
if ($_FILES['myfile']['name'] == ""){
$errors[] = ' *Upload file';
} else if (in_array($file_ext, $allowed_ext) === false) {
$errors[] = ' *Extension not allowed';
}
}
if ($file_size > 5042880) {
$errors[] = 'File size must be under 5mb';
}
if (strlen($folder) > 50) {
$errors[] = 'Your new folder name must be max 50 characters';
}
if (empty($_POST['title'])) {
$errors[] = 'Please Fill Title';
}
if (strlen($_POST['title']) > 255) {
$errors[] = 'Your title must be max 255 characters';
}
if (empty($errors)) {
require('db.inc.php');
$charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
$length = 50;
for ($i = 0; $i <= $length; $i++) {
$rand = rand() % strlen($charset);
$tmp = substr($charset, $rand, 1);
$code .= $tmp;
}
$query = mysql_query("SELECT code FROM files WHERE code='$code'");
$numrows = mysql_num_rows($query);
while ($numrows != 0) {
for ($i = 0; $i <= $length; $i++) {
$rand = rand() % strlen($charset);
$tmp = substr($charset, $rand, 1);
$code .= $tmp;
}
$query = mysql_query("SELECT code FROM files WHERE code='$code'");
$numrows = mysql_num_rows($query);
}
mkdir("files/$code");
mkdir("files/thumbs/$code");
if (move_uploaded_file($file_tmp, "files/$code/".$file_name)) {
$file = "";
$query = mysql_query("INSERT INTO files VALUES ('', '$usernameupload', '$ip', '$title', '$code', '$folder', '$description', '$file_name', '$file_ext', '$file_size', '$date')");
$query1 = mysql_query("INSERT INTO votes VALUES ('', '', '', '$code')");
create_thumb('files/'.$code.'/', $file_name, 'files/thumbs/' . $code . '/');
header("Location: userdownload.php?code=$code");
exit();
}
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
<table>
<tr>
<td id="editfill">Image:*</td>
<td><input type="file" name="myfile" id="fileup"></td>
<tr>
<td></td>
<td><?php
if (isset($_POST['submitupload'])) {
if ($_FILES['myfile']['name'] == ""){
echo '<div id="errormsg"> *Upload file </div>';
} else if (in_array($file_ext, $allowed_ext) === false) {
echo '<div id="errormsg"> *Allowed extension: .jpg, .jpeg, .png, .gif</div>';
} else if ($file_size > 5042880) {
echo '<div id="errormsg"> *File size must be under 5mb </div>';
}
}
?></td>
</tr>
</tr>
<tr>
<td id="editfill">Title:*</td>
<td><input type="text" name="title" id="title" value="<?php if (isset($_POST['submitupload'])) echo htmlentities($_POST['title']); ?>" maxlength="255"></td>
<tr>
<td></td>
<td><?php
if (isset($_POST['submitupload'])) {
if (empty($_POST['title'])) {
echo '<div id="errormsg"> *Please fill title </div>';
}
if (strlen($_POST['title']) > 255) {
echo '<div id="errormsg"> *Your title must be max 255 characters</div>';
}
}
?></td>
</tr>
</tr>
<tr>
<td id="editfill">Create Album:</td>
<td><input type="text" name="folder" id="title" value="<?php if (isset($_POST['submitupload'])) echo htmlentities($_POST['folder']); ?>" maxlength="50">
</td>
<tr>
<td></td>
<td><?php
if (strlen($folder) > 50) {
echo '<div id="errormsg"> *Your new album name must be max 50 characters</div>';
}
?></td>
</tr>
</tr>
<tr>
<td id="editfill">Your Albums:</td>
<td>
<select name="folder_option" class="select">
<option></option>
<?php
$mysql_folder = mysql_query("SELECT `folder_name` FROM `files` WHERE `username` = '$usernameupload' AND `folder_name` > '' GROUP BY `folder_name` ORDER BY `folder_name` ASC");
while ($query_row = mysql_fetch_array($mysql_folder)) {
$filefolder = $query_row['folder_name'];
echo '<option value="' . $filefolder . '">' . $filefolder . '</option>';
}
?>
</select>
</td>
<tr>
<td></td>
<td></td>
</tr>
</tr>
<tr>
<td id="editfill">Description:</td>
<td><textarea name="description" id="description"><?php if (isset($_POST['submitupload'])) echo htmlentities($_POST['description']); ?></textarea></td>
<tr><td></td>
<td>
</td>
</tr>
</tr>
<tr>
<td></td>
<td><center><br><input type="submit" name="submitupload" id="submitupload" value="Upload"></center></td>
</tr>
</table>
</form>