Я пытаюсь загрузить несколько изображений на сервер, используя одно поле ввода для загрузки видеофайла. Изображения успешно загружены, но если они содержат видео или видео, они не могут быть перемещены в каталог, но путь к видео сохраняется в базе данных. Вот мой код:
publi sh. php
$file_name = '';
$tmp_name= $file_type='';
$data = '';
$folder = "mobile uploads/$chare/images/";
$video = "mobile uploads/$chare/videos/";
$dir = '';
if (!empty($_FILES['media']['name'])) {
foreach ($_FILES['media']['name'] as $key => $val) {
$file_name = $_FILES['media']['name'][$key];
$tmp_name = $_FILES['media']['tmp_name'][$key];
$file_type = $_FILES['media']['type'][$key];
$extension = pathinfo($_FILES["media"]["name"][$key], PATHINFO_EXTENSION);
$dir = $folder. md5($_FILES["media"]["name"][$key]) . '.'.$extension;
$vid = $video. md5($_FILES["media"]["name"][$key]) . '.'.$extension;
if (($file_type == "image/jpeg") || ($file_type == "image/png") || ($file_type == "image/gif")) {
if(compress($tmp_name, $dir,50)){
$image_link .= $dir.',';
}
}else{
echo "invalid";
}
}
}
//echo $video_link;
if there is a video
$file_name = $_FILES['video']['name'];
$tmp_name = $_FILES['video']['tmp_name'];
$file_type = $_FILES['video']['type'];
$extension = pathinfo($_FILES["video"]["name"], PATHINFO_EXTENSION);
$dir = md5($_FILES["video"]["name"]) . '.'.$extension;
if (isset($file_name)) {
if (($extension == "mp4") || ($extension == "ogg") || ($extension == "webm")){
if(move_uploaded_file($tmp_name, $video.$file_name)){
$video_link = $video.$dir;
echo $video_link;
}
}else{
echo "invalid";
}
}
if (move_uploaded_file($tmp_name, $dir)) {
$video_link = $dir;
}
if (!empty($_FILES['audio']['name'])) {
# code...
}
//saving post to db
if($video_link==null AND $image_link == null AND $post == null ){
echo 'empty';
}else{
$save_post = mysqli_query($con,"INSERT INTO wall_posts(user_id, post_body, images, date_posted, posted_to,videos,video_type) VALUES ('$user_id','$post','$image_link', '$date','$to','$video_link','$file_type')")or die("Error saving post. ".mysqli_error($con));
if ($save_post) {
echo "saved";
}else{
echo "error ".mysqli_error($con);
}
if (!empty($image_link)) {
mysqli_query($con,"INSERT INTO uploads (user_id,link,date_added,type) VALUES('$user_id','$image_link','$date','Image')");
}
}
, а вот мой ввод
<div class="form-group pl-0 pr-0 pb-0">
<textarea cols="3" name="post" class="form-control" placeholder="What do you think <?= $user['fname']?>?" style="border: none; resize: none;" ></textarea>
<input type="file" onchange="preview_image()" id="file" style="display: none;" name="media[]" multiple >
<!--input type="file" onchange="" id="video" style="display: none;" name="video">
<input type="file" onchange="" id="audio" style="display: none;" name="audio">
<input type="file" onchange="" id="doc" style="display: none;" name="doc" multiple=""-->
</div>
<div id="image_preview"></div>
<div class="input-labels mt-0 pt-2 pb-2 form-group" style="border-top: 1px #ebedf2 solid;" >
<label for="file" class="mr-3" title="image"><i class="icon-picture" style="font-size: 20px; cursor: pointer;"></i></label>
<!--label for="video" class="mr-3" title="Video"><i class="icon-film" style="font-size: 20px; cursor: pointer;"></i></label>
<label for="audio" class="mr-3" title="Audio Clip"><i class="icon-music-tone" style="font-size: 20px; cursor: pointer;"></i></label>
<label for="doc" class="mr-3" title="Documents"><i class="icon-paper-clip" style="font-size: 20px; cursor: pointer;"></i></label-->
<button type="submit" name="publish" class="btn btn-sm btn-round btn-info pull-right">Publish</button>
</div>
и здесь мой js
$('#publishPost').on('submit', function(e){
e.preventDefault();
var preview = document.getElementById('image_preview');
var formc = document.getElementById('publishPost');
var p = document.getElementById('post');
$.ajax({
url: "publish_post",
type: "POST",
data: new FormData(this),
contentType: false,
processData:false,
success: function(data){
//$('#publishPost').reset();
preview.innerHTML='';
if (data=='saved') {
//Notify
$.notify({
icon: 'flaticon-alarm-1',
title: 'Success!',
message: 'Post feed created successfully',
},{
type: 'info',
placement: {
from: "top",
align: "right"
},
time: 1000,
});
}else if(data=='invalid'){
//Notify
$.notify({
icon: 'fas fa-exclamation',
title: 'Ops!',
message: 'Incorrect File format. Try again!',
},{
type: 'danger',
placement: {
from: "top",
align: "right"
},
time: 1000,
});
}else if (data=='empty') {
//Notify
$.notify({
icon: 'flaticon-alarm-1',
title: 'Ops!',
message: 'Can not create empty Post',
},{
type: 'warning',
placement: {
from: "top",
align: "right"
},
time: 1000,
});
}else{
//Notify
$.notify({
icon: 'fas fa-exclamation',
title: 'Error!',
message: data,//'Something went wrong! Please try again',
},{
type: 'danger',
placement: {
from: "top",
align: "right"
},
time: 1000,
});
}
formc.reset();
}
}).fail(function (jqXHR, textStatus, error) {enter code here
// Handle error here
alert(jqXHR.responseText)
});
});
Спасибо за вашу помощь.