다음 이미지 업로드 페이지가 있습니다 :PHP 다중 데이터를 MySQL 데이터베이스에 삽입하는 동안
9 개의 범주가 나열된 다중 선택 상자. 이미지 대체 텍스트의 텍스트 입력 필드입니다. 여러 파일 업로드 필드.
목표는 한 번에 여러 이미지를 업로드하고 alt 텍스트의 텍스트 입력을 각각 저장하며 선택한 카테고리를 각각 저장할 수있게하는 것입니다.
내가 쓴 스크립트가 반드시 스크립트에 내장 된 오류이기 때문에 필자가 작성한 스크립트는 반드시 실패하지는 않습니다. Sorry, there was a problem uploading your images.
.
<?php
include($_SERVER['DOCUMENT_ROOT'].'/settings/functions.php');
include($_SERVER['DOCUMENT_ROOT'].'/settings/config.php');
include($_SERVER['DOCUMENT_ROOT'].'/php/top-notification.php');
include($_SERVER['DOCUMENT_ROOT'].'/php/nav.php');
?>
<div class="container">
<?php
// Connect to database
$conn = getConnected("lucycypher");
// Don't execute upload script unless "upload" is clicked
if(isset($_POST['submit'])) {
// This is the directory where images will be saved
$target = $_SERVER['DOCUMENT_ROOT']."/gallery/";
// This gets all the other information from the form
$img_category = implode(',', $_POST['img_category']);
$img_name = $_POST['img_name'];
// Count the image files
if(count($_FILES['img_file']['tmp_name'])) {
// Loop through each file
foreach ($_FILES['img_file']['tmp_name'] as $img_file) {
// moves the image
if(move_uploaded_file($img_file, $target)) {
// if upload is a success query data into db
mysqli_query($conn, "INSERT INTO gallery_img (img_name, img_category, img_location) VALUES ('$img_name', '$img_category', '$img_file')") ;
echo '<div class="alert alert-success margin-top">Your imags were successfuly uploaded.</div>';
}
else {
echo '<div class="alert alert-danger margin-top">Sorry, there was a problem uploading your images.</div>';
}
}
}
}
?>
<form class="form-horizontal" method="POST" enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<fieldset>
<!-- Form Name -->
<legend>Upload Image</legend>
<!-- Select Multiple -->
<div class="form-group">
<label class="col-md-4 control-label" for="img_category">Category</label>
<div class="col-md-4">
<select id="img_category" name="img_category[]" class="form-control" multiple="multiple">
<option value="horror">Horror</option>
<option value="occult">Occult</option>
<option value="goth">Goth</option>
<option value="industrial">Industrial</option>
<option value="fashion">Fashion</option>
<option value="fetish">Fetish</option>
<option value="avante-garde">Avante-Garde</option>
<option value="cosplay">Cosplay</option>
<option value="nude">Nude</option>
</select>
</div>
</div>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="img_name">Name:</label>
<div class="col-md-4">
<input id="img_name" name="img_name" type="text" placeholder="Image Name" class="form-control input-md" required="">
</div>
</div>
<!-- File Button -->
<div class="form-group">
<label class="col-md-4 control-label" for="img_file">Image</label>
<div class="col-md-4">
<input id="img_file" name="img_file[]" class="input-file" type="file" multiple>
</div>
</div>
<!-- Button -->
<div class="form-group">
<label class="col-md-4 control-label" for="submit">Ready?</label>
<div class="col-md-4">
<button type="submit" name="submit" class="btn btn-primary">Upload</button>
</div>
</div>
</fieldset>
</form>
</div>
<?php include($_SERVER['DOCUMENT_ROOT'].'/php/footer.php'); ?>
그리고 내 데이터베이스 레이아웃은 다음과 같습니다 :
전체 페이지는 여기 내가 여러 카테고리를 선택하면 이미지 파일을 선택하고 아무것도 얻을 수없는 텍스트 상자에 텍스트를 입력
ID mediumint(10) AUTO_INCREMENT
img_name varchar(50)
img_category varchar(200)
img_location blob
img_time timestamp on update CURRENT_TIMESTAMP
데이터베이스에 추가되고 이미지가 서버에 업로드되지 않습니다.
난 그냥 Sorry, there was a problem uploading your images.
오류가 발생합니다.
내 gallery
디렉토리에는 775
권한이 있습니다.
당신의 목표는 directrory 수 있습니다.'$ 대상 = $ _SERVER [ 'DOCUMENT_ROOT'] "/ 갤러리 /";'하는 맞을 수 있지만 대상에 업로드 할 파일을 추가하여 더 이상 대상 디렉토리가 없도록하십시오. 그래서이 줄을 지워야합니다. '$ target = $ target. basename ($ _ FILES [ 'img_file'] [ 'tmp_name']); ' – Franco
삭제되었습니다. 업로드를 다시 시도했습니다. 같은 결과. –
'img_location' 컬럼의 데이터 타입이'blob' 인 이유는 무엇입니까? 서버에 파일을 업로드하고 있습니까? –