Autor | Zpráva | ||
---|---|---|---|
Nuimi Profil |
#1 · Zasláno: 10. 11. 2015, 17:27:49
Dobry den, mam script ve slozce upload, tam je index.php se scriptem a slozka soubory
a scrip <html> <head> <title>Odeslání obrázků na server</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"></head> <body> <div> <?php $delka = strlen($_FILES['fupload']['name']); if ($delka>4) { print "název: ". $_FILES['fupload']['name'] ."<br />"; print "velikost: ". $_FILES['fupload']['size'] ." bajtů<br />"; print "dočasné umístění: ".$_FILES['fupload']['tmp_name'] ."<br />"; print "typ: ". $_FILES['fupload']['type'] ."<br />"; print "chyba: ". $_FILES['fupload']['error'] ."<br />"; if ($_FILES['fupload']['type'] == "image/jpeg") { $nazev_souboru = $_FILES['fupload']['tmp_name']; $cil = "soubory/".$_FILES['fupload']['name']; move_uploaded_file($nazev_souboru, $cil) or die ("Přenesený soubor nelze zkopírovat"); $size = getImageSize($cil); $html_img_str = "<p><img width=\"$size[0]\" height=\"$size[1]\" "; $html_img_str .= "src=\"$cil\" alt=\"přenesený obrázek\" /></p>"; print $html_img_str; } } ?> </div> <form enctype="multipart/form-data" action="<?php print $_SERVER['PHP_SELF']?>" method="post"> <p> <input type="hidden" name="MAX_FILE_SIZE" value="30999000" /> <input type="file" name="fupload" style="width: 700px;"/><br /> <input type="submit" value="Odeslat soubor" /> </p> </form> </body> </html> |
||
Dan Charousek Profil |
#2 · Zasláno: 10. 11. 2015, 17:35:10
Sice to není vůbec šťastné řešení, ale na localhostu se mi obrázek typu .JPG uploaduje správně.
|
||
Nuimi Profil |
#3 · Zasláno: 10. 11. 2015, 20:15:02
tak proč mě to nefunguje :D
|
||
Mari94 Profil |
#4 · Zasláno: 10. 11. 2015, 23:19:25
Upload *.JPG mi také funguje.
Jsi si jistý že uploaduješ právě JPG. Pokud ano, píše ti to nějakou chybu? Máš správně nastavené atributy pro složku "soubory" ? :) |
||
Nuimi Profil |
Děkuju za rady, uploada jpg už mi jde teď jsem se to pokoušel předělat na upload pdf, ale nějak mi to nejde nevíte proč
<form action="<?php print $_SERVER['PHP_SELF']?>" enctype="multipart/form-data" method="post"> Jméno:<br /> <input type="text" name="name" value="" /><br /> Soubor:<br /> <input type="file" name="classnotes" value="" /><br /> <p><input type="submit" name="submit" value="Submit Notes" /></p> </form> <?php if (is_uploaded_file($_FILES['classnotes']['tmp_name'])) { if ($_FILES['classnotes']['type'] != "application/pdf") { echo ("<script>alert('Je nutný formát pdf.');</script>"); } else { $name = $_POST['name']; $result = move_uploaded_file($_FILES['classnotes']['tmp_name'], "soubory/".$_FILES['classnotes']['name']); if ($result == 1) { echo ("<script>alert('Uploudováno.');</script>"); } else { echo ("<script>alert('Neúspěšný upload');</script>"); } } } ?> |
||
Fisir Profil |
#6 · Zasláno: 11. 11. 2015, 17:22:45
Reaguji na Nuimiho:
Prohlížeč pravděpodobně neposílá u souborů PDF MIME typ application/pdf , takže budeš muset použít například kontrolu na základě přípony. (Předpokládám, že ti vyskakuje alert „Je nutný formát pdf.“)
|
||
Dan Charousek Profil |
#7 · Zasláno: 12. 11. 2015, 07:54:06
Fisir:
„takže budeš muset použít například kontrolu na základě přípony“ To bych nedoporučoval. Kontrola na základě přípony je dost nepřesná. Dokonce ani kontrola podle $_FILES['file']['type'] není úplně to pravý ořechový.
Doporučuji kontrolovat pomocí finfo třídy: $finfo = new finfo(FILEINFO_MIME_TYPE); $mime = $finfo->file($tmp_name); echo "Soubor je typu " . $mime; Zde by kontrola if($mime == "application/pdf") {...} měla být v pořádku.
|
||
Časová prodleva: 8 let
|
0