Como posso permitir que os usuários do meu site para fazer upload de arquivos de mídia?

estou actualmente a seguir um tutorial para um formulário básico de envio de ficheiros multimédia. Eu tentei adicioná-lo ao meu site, mas eu sempre recebo a mensagem "houve um erro ao enviar o arquivo, por favor tente novamente!"quando tento fazer upload de imagens usando-o.

coloquei o seguinte ficheiro html no meu servidor:

<DOCTYPE! html>
<html>


<head>
</head>


<body>
<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
</body>


</html>

depois criei o ficheiro uploader.php, que se parece com isto:

<?php

// Where the file is going to be placed 
$target_path = "../uploads/";

/* Add the original filename to our target path.  
Result is "uploads/filename.extension" */
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 



if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}

?>

guardei estes ficheiros no mesmo directório. Eu criei então outro diretório chama - se uploads, que pode ser escrito.

Porque é que isto não está a funcionar?

editar: agora sou capaz de enviar arquivos até 1MB em tamanho, mas qualquer coisa maior do que isso não consegue enviar. Como você pode ver no script HTML, eu configurei o tamanho máximo de arquivo para 10MB - então isso deve funcionar. Faz ideia porque não está?

Author: M Smith, 2016-04-23

1 answers

Vai funcionar. Verifiquei no meu computador.

Alteração value="100000" para value="1000000"

Tipo

<input type="hidden" name="MAX_FILE_SIZE" value="100000" />

E

$target_path = "uploads/";

O campo oculto max_file_size (medido em bytes) deve preceder o campo de entrada de ficheiros, e o seu valor é o tamanho máximo de ficheiros aceite por PHP.

Para mais informações, carregue em Ficheiro Enviar-manual php

Necessidade do utilizador (como, perguntou Em comentário)

Adicione o nome do seu ficheiro a time(). Há muitas maneiras de o fazer. Mas, este podes usar.

$target_path = $target_path .time() .basename( $_FILES['uploadedfile']['name']); 
 2
Author: Nana Partykar, 2016-04-23 14:19:19