Eroare move_uploaded file failed in script upload

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
cadou
Mesaje: 321

Eroare move_uploaded file failed in script upload

Marplo, de ce atunci cand incarc un fisier de sub 1 MB se incarca, cand vreau sa incarc un fisier de 3 si ceva MB nu il incarca ?
Am un script de upload care are progres bar ok functional ... dar la fisiere peste cativa MB imi da eroare ... zice asa :
"move_uploaded_file function failed "

cam asa
upload.php

Cod: Selectaţi tot

<?php session_start(); include('../conectare.php');

if(isset($_SESSION['nume']))
{
$rezultat = '';
$nume = 'test nume';
$denumire = $_POST['denumire'];
$descriere = 'test descriere';
$adresa = 'test adresa';
$data = time();
// Daca este primit din formular un fisier valid
if(isset($_FILES['myfile']))
{ // daca nu e selectat nici un fisier sa dea eroare
if($_FILES['myfile']['name'] == '')
{ $rezultat = '<img src=/imagini/stare-error.png> <font color=red>Alege o poza!</font>'; }
// daca e selectat fisieru, spor la incarcat 
else if(strlen($_FILES['myfile']['name'])  !== 0) 
{ 
if (isset($_FILES['myfile'])) {
  // Verifica daca fisierul are tipul de extensie permis
  $type = end(explode(".", strtolower($_FILES['myfile']['name'])));
      // Daca nu sunt erori in procesul de copiere
      if ($_FILES['myfile']['error'] == 0) {
        // Seteaza locatia si numele pt. incarcare pe server
        $id = 'test123';
        $thefile = 'soft/'.$_FILES['myfile']['name'].'';

        // Daca fisierul nu poate fi incarcat, returneaza mesaj
        if (!move_uploaded_file ($_FILES['myfile']['tmp_name'], $thefile)) {
          $rezultat = '<img src=/imagini/stare-error.png>
            Sa intamplat ceva, nu stiu ce este, revin-o peste cateva minute pentru a 
            schimba poza de profil! Daca problema persista contacteaza-ne!';
        }
        else {
          // Returneaza succes
          $addintrebari = $dbh->exec("INSERT INTO `programe` (`nume`, `denumire`, `descriere`, `adresa`, `data`) VALUE ('$nume', '$denumire', '$descriere', '$adresa', '$data')");
          if ($addintrebari !== false)
          {$rezultat = '<img src="/imagini/stare-succes.png">
          <font color=green>Poza ta de profil a fost incarcata cu succes, in cateva 
          minute va aparea pe site, daca nu apare in maxim 5 minute, contacteaza-ne!
          </font>';}
          else { $rezultat = 'ERoare adaugare in baza de date'; }
        }
      }
}
}
}
}
// daca e delogat sa dea eroare //
else
{
$rezultat = '<img src=/imagini/stare-error.png> <font color=red>Pentru a schimba poza de profil trebuie sa fi logat pe site</font>';
}

// Codeaza cu 'urlencode()' variabila $rezultat si o returneaza in 'onload', intr-un tag BODY
$rezultat = urlencode($rezultat);
echo '<body onload="parent.doneloading(\''.$rezultat.'\')"></body>';
?>
add.php

Cod: Selectaţi tot

<script src="../jquery.js"></script>
<script src="../jquery.form.js"></script>
<link rel="stylesheet" type="text/css" href="../css.css" />

<style type="text/css">
  #uploadframe { display:none; }
</style>
<form id="uploadform" action="../Zprograme/upload.php" method="post" enctype="multipart/form-data" target="uploadframe" onsubmit="uploadimg(this); return false">
  <input type="text" id="denumire" name="denumire">
  <input type="file" id="myfile" name="myfile">
  <input type="submit" value="Salveaza poza" />
  <iframe id="uploadframe" name="uploadframe" src="../Zprograme/upload.php" width="8" height="8" scrolling="no" frameborder="0"></iframe>
</form>
<div id="showimg"> </div>
   <div class="progress" style="color:red;">
     <div class="bar" style="color:yellow;"></div >
     <div class="percent" style="color:green;"></div >
   </div>
   <div id="status" style="color:blue;"></div>
<script type="text/javascript"><!--
function uploadimg(theform){
	
var denumire = $('#denumire').val();
var file = $('#myfile').val();
if(denumire.length < 5 || denumire.length > 50)
{ $('#showimg').html('<font color="red"><img class="error" src="/imagini/stare-error.png"> Denumirea programului trebuie sa contina minim 5 caractere si maxim 50</font>'); }
else if(file.length == 0)
{ $('#showimg').html('<font color="red">Selecteaza un fisier</font>'); }
else {
  theform.submit();
  setStatus("<br>Loading...", "showimg");
// progres bar //

 // end progres bar //
}
}

function doneloading(rezultat) {
  rezultat = decodeURIComponent(rezultat.replace(/\+/g,  " "));
  document.getElementById('showimg').innerHTML = rezultat;
}

function setStatus(theStatus, theloc) {
  var tag = document.getElementById(theloc);

  if (tag) {
    tag.innerHTML = '<b>'+ theStatus + "</b>";
  }
}
--></script>

MarPlo
Salut
Eroarea "move_uploaded_file function failed" poate sa apara cand fisierul pentru upload depaseste valoarea setata la upload_max_filesize in php.ini.
Cu acest cod poti sa vezi cat e valoarea maxima la upload_max_filesize:

Cod: Selectaţi tot

echo ini_get('upload_max_filesize'); 
- Solutia e sa maresti acea valoare in php.ini.

cadou
Salut.
aceea linie de cod imi afiseaza 200M ;

in .htaccess am scris urmatoarele linii .
Nu am idee ce linii imi sunt de folos din cele de mai jos, habar nu am ce face fiecare ...
ideea este ca am gasit pe net aceste linii si am zis sa le testez .... nu am php.ini ... cel putin eu nu il gasesc
folosesc acest host -> members.000webhost.com

Cod: Selectaţi tot

php_value upload_max_filesize 200M // de aici apare acel 200 M , presupun.
php_value post_max_size 200M
php_value memory_limit 320M

php_value session.gc_maxlifetime 10800
php_value max_input_time         10800
php_value max_execution_time     10800
php_value file_uploads	on
php_flag file_uploads 1
php_flag file_uploads "1"
php_flag file_uploads "on"
php_value file_uploads "On"

MarPlo
Incearca scriptul pe localhost (cu xampp), daca functioneaza posibil sa fie de la server; vreo limita fiindca e planul gratuit (care nu poate fi re-setata din .htaccess).
Deci, acele instructiuni din htaccess nu schimba setarile serverului. Ca sa vezi cat e limita pe acel server, aplica:
echo ini_get('upload_max_filesize');
- fara acele coduri in htaccess.

Din ce e mentionat la adresa asta despre 000webhost FAQ 2: https://www.habschned.com/000webhost-com-faq-part-2/
Can i upload files bigger than 2 Megabyte using a PHP upload form?
Unfortunately no, the file size limit for uploading files using PHP is set to 2 Megabytes and cannot be changed.
FTP which does not have the 2 Megabyte limit.

cadou
E limitat la 2M :( .... am sa incerc sa gasesc alt host care nu limiteaza acest lucru .... am nevoie sa gasesc o solutie pana pe 1 mai ....

Subiecte similare