PHP týden Letní akce
Pouze tento týden sleva až 80 % na kurzy PHP. Lze kombinovat s akcí Letní slevy na prémiový obsah!
Brno? Vypsali jsme pro vás nové termíny školení Základů programování a OOP v Brně!
Avatar
3012
Člen
Avatar
3012:17. ledna 14:51

dobrý ďen, potreboval by som sa opýtať z akého dôvodu sa mi nedarí uploadovať súbor, konkrétne video, ale nefunguje to ani na iné súbory, tu je kód html:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>
etheri
</title>
</head>

<body>



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

</body>

</html>

a php:

<?php
     $target_path = "uploads/";

$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!";
}
?>

testujem to na dvoch od seba nezávislích hostingoch: 000webhost.com a webzdarma.cz no vždy sa dopracujem k tomu ze prebehne else a zobrazí sa : There was an error uploading the file, please try again!
 na servere mám html a php skript a folder uploads, nedochádza k žiadnej chybe ktorú by kompilator hlásil, iba vypiše text za else, prosím kde je problém? ďakujem za každú pomoc.
 
Odpovědět 17. ledna 14:51
Avatar
gold604
Člen
Avatar
gold604:17. ledna 16:40

Ahoj, aký je obsah premennej $_FILES['uplo­adedfile']? Mohol by si tu skopírovať print_r?

 
Nahoru Odpovědět 17. ledna 16:40
Avatar
3012
Člen
Avatar
3012:17. ledna 17:27

ahoj, ďakujem za odpoveď, len neviem ako print_r použiť, hľadal som na internete a našiel som toto

<?php
     $target_path = "uploads/";

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {

print_r($_FILES['uploadedfile']); //print_r je tu ale asi ho zle zapisujem, pretoze nič nevypíše


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

asi zle zapisujem printr pretoze nič nevypíše, ako ho mám v tomto kóde zapísať?
aj po použití printr je jediný vystup: There was an error uploading the file, please try again!

 
Nahoru Odpovědět 17. ledna 17:27
Avatar
gold604
Člen
Avatar
Odpovídá na 3012
gold604:17. ledna 17:53

Print_r sa nespustilo, pretože podmienka nebola splnená, respektíve funkcia move_uploaded_fi­le vrátila false. :D Stačí, keď print_r presunieš preč z if blocku:

<?php
     $target_path = "uploads/";

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
print_r($_FILES['uploadedfile']);

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!";
}
?>
 
Nahoru Odpovědět 17. ledna 17:53
Avatar
3012
Člen
Avatar
3012:17. ledna 18:23

ahoj, ďakujem tu je vystup: ( [name] => WIN_20190117_­04_22_53_Pro.mp4 [type] => [tmp_name] => [error] => 2 [size] => 0 )

 
Nahoru Odpovědět 17. ledna 18:23
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:17. ledna 19:36

google = upload file example php
google = error code 2 upload file

http://php.net/manual/en/features.file-upload.errors.php

UPLOAD_ERR_FOR­M_SIZE
Upload, defaultne je limitovan na 2MB / 8MB. Zkus tam nahrat nejaky obrazek, 100k, jestli projde. Kdyz jo, kod mas dobre. Jen musis zmenit limit pro post file.
Vsechno to mas popsane v manualu.

http://php.net/manual/en/features.file-upload.post-method.php
  • je tam link na errory, error code
  • zminka o upload_tmp_dir
  • putenv()
  • php.ini
  • ini_set()
Note: Related Configurations Note
See also the file_uploads, upload_max_filesize, upload_tmp_dir, post_max_size and max_input_time directives in php.ini

Na te strance jsou na to odkazy. Bud tu velikost jde zmenit v php.ini, .htaccess nebo ini_set()
Jeste tohle by mozna bylo uzitecne.
http://php.net/…ini.list.php

 
Nahoru Odpovědět 17. ledna 19:36
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:17. ledna 19:37

Jo, krom toho jsem na nekterych serverech zaznamenal problem s move_upload. Neslo. Pouzil jsem copy. Si nastavili do tempu prava tak, ze soubor neslo smazat, takze se cely prikaz nevykonal :)

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 17. ledna 19:37
Avatar
3012
Člen
Avatar
3012:17. ledna 20:01

Vinikajúce, ďakujem ti už to funguje

 
Nahoru Odpovědět 17. ledna 20:01
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.