[EDIT ]PHP: Filstorleksbegränsning|Programmering / Grafisk formgivning|Forum|Nordichardware

Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
The forums are currently locked and only available for read only access
sp_Feed sp_TopicIcon
[EDIT ]PHP: Filstorleksbegränsning
Adam
Member
Medlem
Forum Posts: 5104
Member Since:
March 27, 2003
sp_UserOfflineSmall Offline
1
November 18, 2004 - 10:02 pm
sp_Permalink sp_Print

EDIT: Se sista inlägget.

För den som inte vet håller jag fortfarande på med mitt uploadscript. embarassed

1. När filen har laddats upp (eller när nått gått snett) visas en sida med diverse info. Tex såhär:

//Ingen fil angiven.
if (!is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "Du har inte angett vilken fil du vill ladda upp.
Gå tillbaka och försök igen.";
exit();
}

Då vill jag helt enkelt ha en länk tillbaka till upload.php, hur lyckas jag med detta?

2. När en uppladdning lyckats visas detta plus att lite info om filen visas.

// Kolla att en fil är uppladdad och flytta den till målkatalogen
$file_name = $_FILES['userfile']['name'];
$file_size = $_FILES['userfile']['size'];
$file_size_kb = $file_size/1024;
if (isset($_POST['submit']) && is_uploaded_file($_FILES['userfile']['tmp_name'])) {
move_uploaded_file($_FILES['userfile']['tmp_name'], $target_dir.$_FILES['userfile']['name']);
echo "Uppladdningen är klar!


Filnamn:
$file_name

Storlek: $file_size_kb kB

Länk: Direktlänk till filen";
}

Den variabel jag kallar '$file_size_kb' funkar bra bara de att den tar med ca 8 decimaler :bgrin: Jag vill ha 1.
Där jag skrivit 'Direktlänk till filen' vill jag att en direktlänk till filen ska visas, (:P) hur gör jag de?

Alla tips är välkomna, jag är kass på PHP.

Mathias_2
Member
Medlem
Forum Posts: 4544
Member Since:
June 30, 2001
sp_UserOfflineSmall Offline
776503
November 18, 2004 - 10:18 pm
sp_Permalink sp_Print

1. Det är enkelt. Du använder dig utav vanlig html-kod inom echo. Det blir alltså så här:

//Ingen fil angiven.
if (!is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "Du har inte angett vilken fil du vill ladda upp.
<a href=upload.php>Gå tillbaka och försök igen.</a>";
exit();
}

Detta gör "Gå tillbaka och försök igen" till en länk.

2. Du ska använda round().

Generellt är det round(nummer_som_ska_avrundas, antal_decimaler). Alltså blir det så här:



Filnamn:[/b] echo round($filesize, 2)

Ska klura lite på direktlänkningen och ger svar om en stund 😉

Mathias_2
Member
Medlem
Forum Posts: 4544
Member Since:
June 30, 2001
sp_UserOfflineSmall Offline
776511
November 18, 2004 - 10:24 pm
sp_Permalink sp_Print

Direktlänkning

Lägg till den här variablen:


$address = "http://address-till-upload-mappen/" . $filename;

Sedan ändrar du:


Länk: Direktlänk till filen";

till


Länk: <a href=$address>$address</a>";

Kanske inte den bästa lösningen men den fungerar. Jag har säkert skrivit fel någonstans, men det kan du säkert hitta och fixa 😉

Etheral
Kommer du hit ofta?
Medlem
Forum Posts: 855
Member Since:
January 27, 2003
sp_UserOfflineSmall Offline
776621
November 19, 2004 - 7:10 am
sp_Permalink sp_Print

edit: svarade visst på helt fel fråga :bgrin:

Mathias_2
Member
Medlem
Forum Posts: 4544
Member Since:
June 30, 2001
sp_UserOfflineSmall Offline
776632
November 19, 2004 - 8:03 am
sp_Permalink sp_Print

Etheral wrote: edit: svarade visst på helt fel fråga :bgrin:

header() kan inte användas efter att man gjort en utskrift. Fast man skulle kunna lösa det genom att sätta en variaben högst upp på sidan före någon utskrift. Sedan kan man skriva ut variablen.

$header = header("Location: upload.php");
...
print $header;

Edit: hann inte se din edit 😉

Adam
Member
Medlem
Forum Posts: 5104
Member Since:
March 27, 2003
sp_UserOfflineSmall Offline
776643
November 19, 2004 - 8:33 am
sp_Permalink sp_Print

Stort tack Mathias!
Ska kolla lite på det där i em. Dock tycker jag att jag försökt med att göra en "vanlig" html-länk men jag får försöka igen... 🙄

Jag återkommer!

Adam
Member
Medlem
Forum Posts: 5104
Member Since:
March 27, 2003
sp_UserOfflineSmall Offline
776873
November 19, 2004 - 2:04 pm
sp_Permalink sp_Print

Återigen stort tack Mathias, det gick fint alltihop!

En ny fråga: (sista, jag lovar :P)

Om nån laddar upp en fil som redan finns (eller snarare att det finns en fil med samma namn) så visas ett meddelande. Nu ser det ut såhär;

//Om fil redan finns.
elseif( file_exists($target_dir . "/" . $_FILES['userfile']['name'])) {
echo "Filnamnet används redan av en annan fil. Döp om filen och försök igen.


<a href=upload.php>Tillbaka till Public Uploader</a>";
exit();
}

Jag vill nu ha med själva filnamnet i felmeddelandet.
Jag trodde det var enkelt och slängde in en varialbel så att det blir så här;

//Om fil redan finns.
$filen = $_FILES['userfile']['name'];
elseif( file_exists($target_dir . "/" . $_FILES['userfile']['name'])) {
echo "Det finns redan en fil som heter $filen. Döp om filen och försök igen.


<a href=upload.php>Tillbaka till Public Uploader</a>";
exit();
}

Detta sabbar dock allting. Vad gör jag för fel?

Mathias_2
Member
Medlem
Forum Posts: 4544
Member Since:
June 30, 2001
sp_UserOfflineSmall Offline
776897
November 19, 2004 - 2:30 pm
sp_Permalink sp_Print

Det borde ju fungera. Annars har du redan en variabel som ger dig filnamnet -> $file_name. Prova att sätta dit den istället.

Edit: Fungerar inte det så kan du börja med att skriva vad du får för felmeddelande (om du får något).

Adam
Member
Medlem
Forum Posts: 5104
Member Since:
March 27, 2003
sp_UserOfflineSmall Offline
776901
November 19, 2004 - 2:34 pm
sp_Permalink sp_Print

Jag har testat med båda. (alltså både att använda den gamla $file_name och att skapa en ny)
I båda fallen slutar scriptet helt att fungera. Inga filer laddas upp och inga felmeddelanden visas. Sidan blir bara vit när man trycker på Upload.

???

EDIT: Löste sig på nått vis. Fråga inte hur.

En annan fråga: laugh

Följande kod tycker jag är väldigt fin:


//Filstorleken...
$max_file_size = "10485760";
$file_size = $_FILES['userfile']['size'];
if ($size_size > $max_file_size) {
echo "Filen är för stor. Storleken är begränsad till 10 MB.



<a href=upload.php>Tillbaka till Public Uploader</a>";
exit();
}

Men den funkar inte. Laddar man upp en fil som är större än 10 MB så visas samma felmeddelande som om man inte angett någon fil tryckt "Upload".

Med andra ord det felmeddelande som genereras av föjande kod:


//Ingen fil har angetts...
if (!is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "[/b]Ingen fil har angetts[/b]. Gå tillbaka och försök igen.

<a href=upload.php>Tillbaka till Public Uploader</a>";
exit();
}

Nått måste vara fel, men vad?

Etheral
Kommer du hit ofta?
Medlem
Forum Posts: 855
Member Since:
January 27, 2003
sp_UserOfflineSmall Offline
777951
November 20, 2004 - 8:14 pm
sp_Permalink sp_Print

istället för
if ($size_size > $max_file_size) {

ska det inte stå

if ($file_size > $max_file_size) {

eller är det bara en felskrivning här

Adam
Member
Medlem
Forum Posts: 5104
Member Since:
March 27, 2003
sp_UserOfflineSmall Offline
777956
November 20, 2004 - 8:18 pm
sp_Permalink sp_Print

Ojdå, det har blivit fel när jag skrev inlägget. I den riktiga koden är det $file_size... embarassed

Det måste vara något annat... Men vad?

Etheral
Kommer du hit ofta?
Medlem
Forum Posts: 855
Member Since:
January 27, 2003
sp_UserOfflineSmall Offline
777966
November 20, 2004 - 8:27 pm
sp_Permalink sp_Print

jag kan så gott som inget php, men det kanske ska vara en 'else' efter din 'if'

typ såhär

//Filstorleken...
$max_file_size = "10485760";
$file_size = $_FILES['userfile']['size'];
if ($size_size > $max_file_size) {
echo "Filen är för stor. Storleken är begränsad till 10 MB.

} else {
fortsätt med uppladdningen (vetifan hur man ska skriva detta)

Tillbaka till Public Uploader";
exit();
}

nu chansar jag hejvilt då jag kan så gott som inget, men det är ju alltid värt ett försök 🙂

edit: flyttade en klammer

Adam
Member
Medlem
Forum Posts: 5104
Member Since:
March 27, 2003
sp_UserOfflineSmall Offline
778084
November 20, 2004 - 10:47 pm
sp_Permalink sp_Print

mm.. tack för att du försöker.. Jag ska testa det nån gång när jag orkar.

Etheral
Kommer du hit ofta?
Medlem
Forum Posts: 855
Member Since:
January 27, 2003
sp_UserOfflineSmall Offline
778309
November 21, 2004 - 10:47 am
sp_Permalink sp_Print

gäller bara att veta hur man ska skriva 🙂

du kan ju testa något annat forum, ett som är inriktat på php
typ http://www.phpportalen.net

edit: ett fel

Forum Timezone: Europe/Stockholm
Most Users Ever Online: 694
Currently Online:
Guest(s) 33
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Andreas Galistel: 16287
Jonas Klar: 15897
ilg@dd: 10810
Nyhet: 10607
Mind: 10550
Ctrl: 10355
Gueno: 9881
Guest: 9344
Snorch: 8881
Callister: 8468
Newest Members:
PetrbonFU PetrbonFU
Karine Bembry
Dolores Mcdaniels
Anibal McLeish
Francisca Alt
Alfie Everhart
Lester Huitt
Orlando Jorgensen
Mikki Lundgren
Dakota Kozlowski
Forum Stats:
Groups: 11
Forums: 59
Topics: 146630
Posts: 1300967

 

Member Stats:
Guest Posters: 2
Members: 79425
Moderators: 0
Admins: 11
Administrators: nordicadmin, Henrik Berntsson, Anton Karmehed, Carl Holmberg, Joel Oscarsson, Mikael Linnér, Mikael Schwartz, Andreas Paulsson, Nickebjrk, Mattias Pettersson, EmxL