webForumDet fria alternativet

Öka "bildvärde" med 1

3 svar · 276 visningar · startad av tody

todyMedlem sedan mars 200520 inlägg
#1

Hej

Jag håller på med ett bilduppladdningsscript. Har kommit så långt att jag har gjort ett fungerande script som kan ladda upp en bild i jpg, gif format. När man då laddar upp bilden så blir det samma namn på bilden som den hette på användarens(den som ladda upp bilden) dator.

Men fall man ska ha flera som ska ladda upp bilder så kan de ju hända att dom har döpt bilden till samma namn på deras datorer.
Alltså att två personer laddar upp en bild med namnet jag.jpg och då blir det komplikationer.

Så jag hade tänkt att den allra första som laddar upp en bild, att dennes bild ska heta 1.jpg och sedan ska bilderna öka med 1 hela tiden.

Så fall det kommer någon efter honom och laddar upp så kommer den bilden att heta 2.jpg, bilden efter den 3.jpg, 4.jpg osv.

Men har inte lyckats kunna lösa detta problemet, så att bildvärdet ökar med 1.

Jag använder mig av denna koden:

<? 
$mapp = "bilder/"; // Väljer vart bilden ska ligga, nu i mappen bild

$filenamn = $_FILES["fil"]["name"]; // lägger in orginalnamnet på bilden som den heter när den laddas upp i en variabel

$max_storlek = 100*1024; // första siffran är kb 

$mime_typer = array("image/jpeg", "image/pjpeg", "image/gif"); // dessa filtyper går att ladda upp

$destination = $mapp.$filenamn; // sätter ihop vald mapp och filnamnet på bilden

if ( in_array ( $_FILES["fil"]["type"], $mime_typer) &&  
$_FILES["fil"]["size"] <= $max_storlek ) {     // kollar om filen har rätt mimetype och rätt storlek

     move_uploaded_file($_FILES["fil"]["tmp_name"], $destination);
	 echo ("Din fil laddades upp utan problem");     // Laddar upp filen där du valt att den ska hamna
	 
}
  else{
  
echo ("Ett fel uppstod vid uppladdningen. <br />");
echo "Din fil är ".(ceil($_FILES["fil"]["size"]/1024)). " kb stor,
maxstorleken är ".($max_storlek/1024)." kb.<br />";
echo "Din filtyp är ".$_FILES["fil"]["type"].", de format som stödjs 
är följande: <br />";                  // Visar om något är fel och vad som är fel

foreach($mime_typer as $stodjs)
echo $stodjs. "<br />";
  
}  
?>

Har testat med att byta ut:
$filenamn = $_FILES["fil"]["name"];

Med:
$filenamn = ((jesper)+1);

Men då blir bildnamnet bara jesper, och sedan fall man laddar upp en bild till så skriver den över den första bilden eftersom den får samma namn, jesper.

Frågan är alltså hur jag ska göra för att bilderna som kommer att laddas upp ökar med siffervärdet 1 hela tiden?

Tacksamm för alla svar! //tody

DufferMedlem sedan mars 2003429 inlägg
#2

du kan inte skriva (jesper)+1 eftersom du kan ju inte öka värdet jesper eftersom det inte innehåller något numerisk värde eller variabelvärde.

du får istället srkiva t.ex. $filenamn = "$variabeljesper"."1"

Sen angående lösning på upräkning kan du lösa med en while loop:

WHILE(file_exists("$variabelnamn$i".".jpg")) {
         $i++;
}

// spara nu filen med "$variabelnamn$i" som namn

Mvh

todyMedlem sedan mars 200520 inlägg
#3

Hmm får det inte riktigt att funka, tror inte jag gjort rätt. Så här ser det ut iaf:

<? 
$mapp = "bilder/"; // Väljer vart bilden ska ligga, nu i mappen bild

$variabelbild = "bild";

$filenamn = "$variabelbild"."1"; // lägger in orginalnamnet på bilden som den heter när den laddas upp i en variabel

while (file_exists("$filenamn$i".".jpg")) {
         $i++;
}

$max_storlek = 100*1024; // första siffran är kb 

$mime_typer = array("image/jpeg", "image/pjpeg", "image/gif"); // dessa filtyper går att ladda upp

$destination = $mapp.$filenamn; // sätter ihop vald mapp och filnamnet på bilden

if ( in_array ( $_FILES["fil"]["type"], $mime_typer) &&  
$_FILES["fil"]["size"] <= $max_storlek ) {     // kollar om filen har rätt mimetype och rätt storlek

     move_uploaded_file($_FILES["fil"]["tmp_name"], $destination);
	 echo ("Din fil laddades upp utan problem");     // Laddar upp filen där du valt att den ska hamna
	 
}
  else{
  
echo ("Ett fel uppstod vid uppladdningen. <br />");
echo "Din fil är ".(ceil($_FILES["fil"]["size"]/1024)). " kb stor,
maxstorleken är ".($max_storlek/1024)." kb.<br />";
echo "Din filtyp är ".$_FILES["fil"]["type"].", de format som stödjs 
är följande: <br />";                  // Visar om något är fel och vad som är fel

foreach($mime_typer as $stodjs)
echo $stodjs. "<br />";
  
}  
?>

När jag försöker med den koden får jag felmeddelandet:

Notice: Undefined variable: i in C:\Program\Apache Group\Apache2\htdocs\bilduppladdning\uppload.php on line 8

Vad kan vara fel?

fiddlerMedlem sedan juli 20023 617 inlägg
#4

Raderade mitt inlägg...var lite för snabb att svara...

122 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)