Итак, я работаю над этим школьным проектом уже около недели, а затем натолкнулся на случай, когда мне пришлось реализовать форму регистрации пользователя, где она должна была предоставить информацию о пользователе, а также изображение профиля пользователя, путь которогодолжен также храниться в БД.Недостаток в том, что я не могу заставить работать скрипт загрузки.Я просмотрел десятки учебных пособий и прочитал около 15 решений подобных проблем с этой самой платформы, но все еще безрезультатно.Я также убедился, что в файле php.ini
включена настройка file_upload
.
ЗДЕСЬ МОЯ ФОРМА HTML
<form style="padding: 1em;" class="ui form small inverted raised segment" action="signup.php" method="POST" enctype="multipart/form-data">
<h4 class="ui dividing header">Background Information</h4>
<div class="field">
<div class="three fields">
<div class="field">
<input type="text" name="fname" placeholder="Firstname" required>
</div>
<div class="field">
<input type="text" name="mname" placeholder="Other name">
</div>
<div class="field">
<input type="text" name="lname" placeholder="Lastname" required>
</div>
</div>
</div>
<div class="field">
<div class="two fields">
<div class="field">
<select name="gender">
<option value="">Select Gender</option>
<option value="Male">Male</option>
<option value="Female">Female</option>
<option value="Other">Other</option>
</select>
</div>
<div class="field">
<input type="date" name="dob" required>
</div>
</div>
</div>
<div class="ui dividing header">Contact Information</div>
<div class="field">
<div class="two fields">
<div class="field">
<input type="tel" name="phone" placeholder="Mobile phone number" required>
</div>
<div class="field">
<input type="email" name="email" placeholder="Email address" required/>
</div>
</div>
</div>
<div class="field">
<div class="three fields">
<div class="field">
<input type="text" name="area" placeholder="Area/Village" required>
</div>
<div class="field">
<input type="text" name="trad_auth" placeholder="T/A or STA">
</div>
<div class="field">
<select id="district" name="kasungu">
<option value="Kasungu">Kasungu</option>
</select>
</div>
</div>
<div class="ui dividing header">Work Details</div>
<div class="field">
<div class="two field">
<div class="field">
<select id="department" name="department">
<option value="">Select Department</option>
</select>
</div>
</div>
</div>
<div class="ui dividing header">Acc Authentication Details</div>
<div class="field">
<input type="text" name="activation-code" placeholder="Enter admin authentication code (XXX-XXXX-XXXX)" required/>
</div>
<div class="field">
<div class="two fields">
<div class="field">
<input type="password" name="pass1" placeholder="Create Password" required/>
</div>
<div class="field">
<input type="password" name="pass2" placeholder="Confirm Password" required/>
</div>
</div>
</div>
<div class="ui dividing header">Upload Image</div>
<div class="field">
<div class="two fields">
<div class="field">
<input type="file" style="display: none;" id="pic" name="image"/>
<a type="button" id="upload" class="ui button fluid negative mini"><i class="icon camera"></i></a>
</div>
</div>
</div>
<div class="three fields">
<div class="field"></div>
<div class="field">
<button type="submit" name="submit" class="ui fluid mini positive button">
Signup <i class="icon user"></i>
</button>
</div>
<div class="field"></div>
</div>
<div>
<?php
if(!empty($errorMsg)){
echo $errorMsg;
}
?>
</div>
</div>
</form>
ЗДЕСЬ МОЯ ФУНКЦИЯ PHP, КОТОРАЯ ПОЛУЧАЕТ FILE['image']
ПАРАМЕТР.
<?php
function uploadFile($file){
$newName;
if(isset($file)){
$file_name = $file['name'];
$file_tmp_loc = $file['tmp_name'];
$file_size = $file['size'];
$file_error = $file['error'];
$ext = strtolower(end(explode('.', $file_name)));
$allowed = array('jpg','jpeg','png','gif');
if(in_array($allowed, $allowed)){
if($file_error == 0){
if($file_size > 3000000){
$file_name_new = uniqid('',true).".".$ext;
$destination = '../images/users/';
$destination = $destination.$file_name_new;
if(move_uploaded_file($file_tmp_loc, $destination)){
$newName = $destination;
}else{
echo "<h1>Failed to move uploaded file</h1>";
}
}
}else{
echo "file upload failed. ".$file['error'];
}
}else{
echo "Type not allowed!"; }
}
}
return $newName;
?>
В моем другом PHP-скрипте я вызываю функцию следующим образом:
<?php
$fileName = uploadFile($_FILE['image']);
?>
, а затем сохраняет возвращенное новое имя в качестве ссылки в базе данных MySQL.