Estou tentando fazer upload de um arquivo de um formulário html para que o arquivo vá para uma pasta específica e o caminho seja carregado para um banco de dados. A parte do banco de dados funciona bem, mas o arquivo não vai para a minha pasta de destino. Eu tenho as permissões de pasta definidas para 777 e em meu arquivo php.ini, file_uploads = on.
<?php
require 'config.php';
$connection = new mysqli($servername, $username, $password, $db);
foreach ($_FILES['upload']['name'] as $key => $name) {
if( move_uploaded_file($_FILES['upload']['name'][$key], '/upload_test/' .
$name)){
echo "Uploaded";
} else {
echo "Debug ", print_r($_FILES);
};
$path = '/upload_test/' . $name;
mysqli_query($connection, "insert into docs (path) values ('$path')");
}
?>
<script src="addInput.js" type="text/javascript"></script>
<form method="POST" action="upload.php" enctype="multipart/form-data">
<div id="dynamicInput">
<input type="file" name="upload[]" multiple><input type="button"
value="+" onClick="addInput('dynamicInput');">
</div>
<input type="submit" value="Upload">
</form>
Quando tento fazer o upload, ele retorna o seguinte:
Debug: Array(
[upload] => Array(
[name] => Array([0] => test.docx)
[type] => Array([0] => application/vnd.openxmlformats-officedocument.wordprocessingml.document)
[tmp_name] => Array([0] => /tmp/phputnLek)
[error] => Array([0] => 0)
[size] => Array([0] => 12551)
)
)
Com base em seu comentário, parece que você está tentando fazer upload para o diretório errado:
if (move_uploaded_file($_FILES['upload']['tmp_name'][$key], '/upload_test/' . $name)) {
Observe que o caminho '/upload_test/' . $name
está na raiz do seu sistema de arquivos, pois começa com uma barra /
.
Se desejar mover o arquivo para um diretório relativo àquele em que está executando o script, você precisará:
if (move_uploaded_file($_FILES['upload']['tmp_name'][$key], 'upload_test/' . $name)) {
^ relative to the current path
Como os caminhos relativos tendem a causar confusão, você também pode definir uma variável para definir a raiz do seu site em relação à raiz do sistema de arquivos ou usar o valor fornecido por php $_SERVER['DOCUMENT_ROOT']
,.
Por exemplo:
define('WEBROOT', '/var/www/html');
...
if (move_uploaded_file($_FILES['upload']['tmp_name'][$key],
WEBROOT . '/multiple_file_upload/upload_test/' . $name)) {
ou:
if (move_uploaded_file($_FILES['upload']['tmp_name'][$key],
$_SERVER['DOCUMENT_ROOT'] . '/multiple_file_upload/upload_test/' . $name)) {
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras