Autor Zpráva
RastyAmateur
Profil
Dobrý večer,

řeším tu aktuálně jeden problém... Dělám web, ve kterém je potřeba uploadovat obrázky a nějak mi to nejde :( Vždy jsem to dělal přes JS přes ajax, nyní to dělám "normálně" a to tak, že formulář mi odešle $_POST["action"] = "upload" a pak mám nastaveno, že když je action roven uploadu, že se vykoná funkce... Hlásí mi to, že "Žádný soubor nebyl vybrán" (první podmínka)...

Dokázal by mi někdo pomoci? Děkuji :))

function actionCreate(){
    global $mysqli;
    global $_POST;
    global $_FILES;
    global $_SERVER;
    
    $_FILES["file"]["name"] = isset($_FILES["file"]["name"]) ? $_FILES["file"]["name"] : null;
    $_FILES["file"]["type"] = isset($_FILES["file"]["type"]) ? $_FILES["file"]["type"] : null;
    $_FILES["file"]["size"] = isset($_FILES["file"]["size"]) ? $_FILES["file"]["size"] : null;
    $_FILES["file"]["tmp_name"] = isset($_FILES["file"]["tmp_name"]) ? $_FILES["file"]["tmp_name"] : null;
    $_FILES["file"]["error"] = isset($_FILES["file"]["error"]) ? $_FILES["file"]["error"] : null;
    $name = $_FILES["file"]["name"];
    $type = $_FILES["file"]["type"];
    $size = $_FILES["file"]["size"];
    $tmp_name = $_FILES["file"]["tmp_name"];
    $error = $_FILES["file"]["error"];
    
    if(!empty($_FILES["file"]["name"])){
        if(!$error){
              $explo = explode(".", $name);
              $ext = end($explo);
              $new_name = rand(0,10000).date("d_m_Y-G_i_s").rand(0,10000).".".$ext;
          $location = "/mapproject/data/maps/".$new_name;
              if($ext == "jpg" OR $ext == "jpeg" OR $ext == "JPG" OR $ext == "JPEG" OR $ext == "bmp" OR $ext == "png"){
                  if(!file_exists($location)){                
                      move_uploaded_file($tmp_name,$location);
              $code = "";
              $codeArray = array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
              for($i=1;$i<=5;$i++){
                $rand = rand(0,41);
                $code .= $codeArray[$rand];
                }
              $insert = $mysqli->query("INSERT INTO maps (code,name,ip,date,path) VALUES ('".$code."','".$_POST["name"]."','".$_SERVER["REMOTE_ADDR"]."',NOW(),'".$new_name."') ");
              if($insert){
                $result = "Slepá mapa byla úspěšně nahrána!";
                $success = True;
                }               
              else{
                $result = "Bohužel, někde se stala chyba. Kontaktujte, prosím, administrátora!";
                }       
                      }                                         
                  else{ 
              $result =  "Soubor s tímto jménem jíž existuje, prosím nauploadujte ho znovu.";
              }
                  }
          else{
            $result =  "Je povoleno nahrávat pouze mapy s příponou .jpg, .jpeg, .JPG, .png, .bmp a .JPEG.";
            exit;
            }                       
              }
        else if($error == 1){
              $result =  "Presáhl jste limit velikosti uploadu na tomto serveru.";
              }
          else if($error == 2){
              $result =  "Přesáhl jste limit velikosti souboru.";
              }
          else if($error == 3){
              $result =  "Soubor byl nahrán pouze částečně!";
              }
          else if($error == 4){
              $result =  "Soubor se nepodařilo nahrát na server.";
              }
          else if($error == 6){
              $result =  "Na serveru chybí temp. directory!";
              }
          else if($error == 7){
              $result =  "Nepodařilo se zapsat soubor na disk.";
              }
          else{
              $result =  "Nastala neznámá chyba.";
              }
      }
    else{
      $result =  'Nebyl vybrán žádný soubor!';
      } 
    $success = isset($success) ? $success : False;
    $return["success"] = $success;
    $return["result"] = $result;
    return $return;
    }

PS: Vím, že některé věci by šli vyřešit lépe, a že nezkoumám, jestli byl vyplněn název, o to tu nyní nejde :)


Omlouvám se, napsal jsem do formuláře type="file" type="file" namísto name="file" :D Ale děkuji :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0