Jump to content
Palmeira

[Dúvida] Criar pastas no servidor

Recommended Posts

Palmeira

Boas, estou num projecto, a fazer um formulário de registo de clientes que têm um campo de upload de imagem, o script que trata este upload funciona muito bem, mas para directorias já existentes no servidor (neste caso local).

É possível alterar este script para aquando do registo de um cliente, caso este tenha imagem para upload, criar uma pasta dinamicamente, com o nome por exemplo do user ?

Cumprimentos,

fica aqui o código PHP que já tenho para tratamento do upload de ficheiros :)

<?php
$host = "localhost";
$acc = "root";
$pass = "";
$bd = "lojamusica";

$connect = mysql_connect($host, $acc, $pass);
$db = mysql_select_db($bd, $connect);
$nomeprod = $_POST['nome'];
$marcaprod = $_POST['marca'];
$descprod = $_POST['desc'];
$preco = $_POST['preco'];

if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br />";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  echo "Type: " . $_FILES["file"]["type"] . "<br />";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  echo "Temp File: " . $_FILES["file"]["tmp_name"]."<br/>";
  
if (file_exists("img/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " já existe na directoria de destino. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "img/" . $_FILES["file"]["name"]);
      echo "Imagem Guardada com Sucesso em : " . "img/" . $_FILES["file"]["name"];
      }
    }

$sql ="Insert into produtos (nome, descricao, marca, imagem, preco) values ('$nomeprod' ,'$marcaprod' ,'$descprod', 'img/" . $_FILES["file"]["name"] . "', '$preco')"; 

$result =mysql_query($sql);

$sql2 ="Select * from produtos";

$resultado =mysql_query($sql2);


if ($resultado) {
print("<br />Registo introduzido com sucesso na bd produtos");
}
else {
print("erro");
}

mysql_close($connect);

?> 
<p><a href="upload.html">voltar</a></p>

Share this post


Link to post
Share on other sites
taviroquai

No que toca ao PHP, está aqui o "arsenal de combate":

http://php.net/manual/en/ref.filesystem.php

Mas quem vai ler/escrever no sistema de ficheiros é o "user" servidor web (apache, iis, etc...) por isso verifica 1º se esse user tem permissão para escrever nas pastas que queres.

Mas se esse código funciona, então basta usares a função "mkdir":

http://www.php.net/manual/en/function.mkdir.php

Share this post


Link to post
Share on other sites
Palmeira

porreiro, vou testar isto ASAP :) obrigado

engraçado, os comandos sejam iguais aos do terminal *nix :) ; e basicamente sendo utilizador disso, já sei o que fazem +/- .

basicamente vou ter que verificar se a pasta com nome X já existe no server, se sim, ignora a rotina de criar nova pasta, e faz upload do ficheiro, se não existe cria a pasta e faz upload do ficheiro.

isto para já, com permissões de root(?) (0777) não há problema, pois é só para testes, mas há problemas quanto a ter um script como este a criar pastas com essas permissões para os users do site ? tipo segurança ou coisa que o valha ?

em termos de sql injections, tou +/- preparado e tenho já definido o uso das funções addSlashes, etc.

EDIT : se calhar já é da hora e do trabalho a mais, ou tou a ter uma diarreia cerebral lol, tendo em conta o que disseste em cima ->

Mas quem vai ler/escrever no sistema de ficheiros é o "user" servidor web (apache iis, etc...) por isso verifica 1º se esse user tem permissão para escrever nas pastas que queres.
, eu não terei este problema tendo em conta que o administrador do site sou eu, e que vou ser eu a fazer manutenção de servidor, páginas etc, correcto ?

Share this post


Link to post
Share on other sites
brunoais

De qq modo é o dono dos ficheiros o que pode mudar as permissões. O dono dos ficheiros num servidor é o seu gestor (apache, iis, etc...) que é tb o que corre o php (na maior parte das vezes)


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
joao.lucas.89

Com o php utilize o is_dir() , é uma função para verificar se o directório existente já existe.

Se foi o q eu percebi primeiro

Por exemplo

if(!is_dir(nome do utilizador)) {

/* Cria o directório para o utilizador */

}

Se for o que eu entendi depois, tu queres é criar directórios dinamicamentes para inserir as imagens. E porque não utilizar imagens com nome diferentes ? Do tipo , img_438u2472394.jpg, img_9954989.jpg

Utilize o md5 para fazer isso.

Pelo que eu percebi foi isso. Obrigado , qq coisa msn joao.lucas.89[at]hotmail[dot]com


Entrem no meu websiteQuem sabe os meus conhecimentos podem te ajudarhttp://luquinhas.com/

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.