Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde,
Estou precisando de uma ajuda, pois sou iniciante ainda em php. Seguinte:
Tenho um código funcionando normalmente, ele envia o arquivo direitinho e tal. Porém, ele envia para uma pasta especifica que eu coloco o nome direto no código, mas eu preciso enviar cada arquivo para uma pasta diferente já criada no servidor.
Então, eu queria fazer assim: digitar o nome da pasta (que já está criada no server) em um campo input text, selecionar o arquivo normalmente e enviar. Assim cada um iria para pasta correta.
Como posso fazer isso?
Segue o código:
O formulário já está criado tbm
<form method="post" action="upload2.php" enctype="multipart/form-data">
<input type="text" name="posto" id="posto">
<input type="file" name="arquivo" />
<br>
<input name="enviar" type="submit" class="botao" value="Enviar" />
</form>
<?php
$posto = $post["posto"];
$uploaddir = '$posto/';
$uploadfile = $uploaddir . $_FILES['arquivo']['name'];
if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $uploadfile)){
echo "Arquivo Enviado";}
else {echo "Houve um problema no upload do arquivo.";}
?>
Abraço o/Opa, muito obrigado amigo, vou dar uma olhada no seu código sim.
O erro que da é esse:
Warning: move_uploaded_file($posto/Envelope V.jpg): failed to open stream: No such file or directory in /home/ambientalsi/public_html/central/upload2.php on line 15
Warning: move_uploaded_file(): Unable to move '/tmp/phpwx1CPc' to '$posto/Envelope V.jpg' in /home/ambientalsi/public_html/central/upload2.php on line 15
Houve um problema no upload do arquivo.
Olá amigo.
As aspas simples não são interpretadas pelo PHP. Elas são processadas de forma crua. Ou seja:
$uploaddir = '$posto/';
Se você notar no seu erro, ele está literalmente escrevendo $posto/, enquanto você queria o valor interpretado dessa variável.
Para isso você deveria fazer algo assim:
$uploaddir = $posto . '/'; // concatenação de strings
$uploaddir = "{$posto}/"; // uso de aspas duplas
Veja mais sobre Strings no manual: https://secure.php.net/manual/pt_BR/language.types.string.php
Boa tarde amigo,
Coloquei da seguinte forma:
<?php
$posto = $_post["posto"];
$uploaddir = $posto . '/'; // concatenação de strings
$uploaddir = "{$posto}/"; // uso de aspas duplas
$uploadfile = $uploaddir . $_FILES['arquivo']['name'];
if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $uploadfile)){
echo "Arquivo Enviado";}
else {echo "Houve um problema no upload do arquivo.";}
?>
Deu o seguinte erro:
**Warning**: move_uploaded_file(/CartaoAmbF2.jpg): failed to open stream: Permission denied in **/home/ambientalsi/public_html/central/upload2.php** on line **14**
Warning: move_uploaded_file(): Unable to move '/tmp/phpWF8jaU' to '/CartaoAmbF2.jpg' in /home/ambientalsi/public_html/central/upload2.php on line 14
Houve um problema no upload do arquivo.
Caso o erro esteja muito óbvio, me desculpe a ignorância ^^
Não tem permissão para subir o arquivo para a pasta, se estiver usando linux, lembre de dar permissão total na pasta que está tentando subir.
Fiz o teste aqui no código e funcionou.
<?php
$posto = $_REQUEST["posto"];
$uploaddir = $posto . '/';
$uploadfile = $uploaddir . $_FILES['arquivo']['name'];
if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $uploadfile)){
echo "Arquivo Enviado";}
else {echo "Houve um problema no upload do arquivo.";}
?>Opaa!
Agora deu certoo.
Muito obrigado Julio, Matheus.
Valeu mesmo galera!
Código funcionando:
<?php
$posto = $_REQUEST["posto"];
$uploaddir = $posto . '/';
$uploadfile = $uploaddir . $_FILES['arquivo']['name'];
if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $uploadfile)){
echo "Arquivo Enviado";}
else {echo "Houve um problema no upload do arquivo.";}
?>
Qual erro está dando? Parece que está tudo certo, eu faria algumas modificações: