我的代码出现问题。我知道我做错了什么,但我不知道是什么。我有一个照片上传表单,如果它还不存在,它必须创建一个文件夹,并将图片上传到该文件夹。
所以我的问题是我不能同时做这两件事e。如果文件夹已经存在,图像就会上传,但如果文件夹不存在,它只会创建文件夹,我必须再次上传,因为照片会进入该文件夹。
这是我的密码。
索引.HTML
<form action="" method="post" enctype="multipart/form-data">
<input id="input-image-3" class="file-loading" type="file" id="file" name="files[]" multiple="multiple" accept="image/*" />
</form>
<script>
$("#input-image-3").fileinput({
uploadUrl: "upload.php",
allowedFileExtensions: ["jpg","jpeg", "png", "gif"],
maxImageWidth: 100,
maxImageHeight: 100,
resizePreference: 'height',
maxFileCount: 10,
resizeImage: true,
}).on('filepreupload', function() {
$('#kv-success-box').html('');
}).on('fileuploaded', function(event, data) {
$('#kv-success-box').append(data.response.link);
$('#kv-success-modal').modal('show');
});
</script>
上传PHP
<?php
$valid_formats = array("jpg", "png");
$max_file_size = 1024*100; //100 kb
$path = "up/test/"; // Upload directory, later i'll get the name of user
$filename=$file['filename'];
$extension = '.jpg';
$i=1;
while(file_exists($path.$filename.$extension)){
$filename=$file['filename']."teste_($i)";
$i++;}
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to exeicute all files
foreach ($_FILES['files']['name'] as $f => $name) {
if ($_FILES['files']['error'][$f] == 4) {
continue; // Skip file if any error found
}
if ($_FILES['files']['error'][$f] == 0) {
if ($_FILES['files']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
if(!is_dir($path)){mkdir($path, 0755);} // If dont exist, create folder
move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$filename.$extension);
}
}
}
}
echo json_encode (json_decode ("{}"));
?>
提前感谢您,
在新创建的目录中上传文件时,请尝试以下代码。
<?php
define("SITE_NAME","project_name/"); //constant for project name
define("SITE_PATH",$_SERVER['DOCUMENT_ROOT']."/".SITE_NAME); //constant for project base directory
define("IMAGES_URL",SITE_URL."images/"); //constant for image directory
$upload_base_dir=IMAGES_URL;
$upload_time_dir=date('Y')."/".date('m')."/".date('d')."/"; // setup directory name
$upload_dir = $upload_base_dir.$upload_time_dir;
if (!file_exists($upload_dir)) {
mkdir($upload_dir, 0777, true); //create directory if not exist
}
$image_name=basename($_FILES['image']['name']);
$image=time().'_'.$image_name;
move_uploaded_file($_FILES['image']['tmp_name'],$upload_dir.$image); // upload file
?>
if(!is_dir($path)){mkdir($path,0755);将其更改为777并检查是否有帮助或者试试
> if(isset($_FILES["fileToUpload"]["name"]) && $_FILES["fileToUpload"]["name"] != "")
> {
> $target_dir = "/pics/";
> $target_file = 'Image_'.basename($_FILES["fileToUpload"]["name"]);
>
> $uploadOk = 1;
> $imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);
>
> // Check if image file is a actual image or fake image
> $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
>
> if ($check !== false) {
> $msg['status'] = '1';
> $msg['message'] = "File is an image - " . $check["mime"] . ".";
> $uploadOk = 1;
> } else {
> $msg['status'] = '0';
> $msg['message'] = "File is not an image.";
> $uploadOk = 0;
> }
>
> // Check if file already exists
> if (file_exists($target_file)) {
> $msg['status'] = '0';
> $msg['message'] = "Sorry, file already exists.";
> $uploadOk = 0;
> }
> // Check file size
> if ($_FILES["fileToUpload"]["size"] > 5000000) {
> $msg['status'] = '0';
> $msg['message'] = "Sorry, your file is too large.";
> $uploadOk = 0;
> }
> // Allow certain file formats
> if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") {
> $msg['status'] = '0';
> $msg['message'] = "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
> $uploadOk = 0;
> }
>
> // Check if $uploadOk is set to 0 by an error
> if ($uploadOk == 0) {
> $msg['uploadstatus'] = "Sorry, your file was not uploaded.";
> // if everything is ok, try to upload file
> } else {
> $target_dir = "/pics/";
> if (!file_exists($target_dir)) {
> try {
> mkdir($target_dir);
> } catch (Exception $ex) {
> die("error");
> }
> }
> if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
> $target_dir.$target_file)) {
> $data['imageTitle'] = basename($_FILES["fileToUpload"]["name"]);
> $data['imageLink'] = $target_file;
> $data['memberId'] = 5;
> $msg['id'] = 5;
> $msg['name'] = basename($_FILES["fileToUpload"]["name"]);
> $msg['size'] = ($_FILES["fileToUpload"]["size"] / 1024) . "kb";
> $msg['status'] = '1';
> $msg['message'] = "The file " . basename($_FILES["fileToUpload"]["name"]) . " has been uploaded.";
> $msg['uploadstatus'] = "file uploaded";
> $msg['imagepath'] = $target_dir;
>
> } else {
> $msg['status'] = '0';
> $msg['message'] = "Sorry, there was an error uploading your file.";
> $msg['uploadstatus'] = "Sorry, your file was not uploaded.";
> }
>
> }
> }