webForumDet fria alternativet

Hantering av filnamn vid uppladdning

PHP

3 svar · 317 visningar · startad av lillebror

Medlem sedan apr. 20041 597 inlägg
Frågan#1

Hej!

Jag håller på med en funktion där användare skall kunna ladda upp kort på sig själva till deras respektive profil. Nu undrar vilket tillvägagångssätt som är bästa att använda sig av med hänsyn till de olika filnamn som de uppladdade bilderna kommer att ha.

Ska man ta emot den uppladdade bilden, döpa om den (ex. PIC00001, PIC00002 osv.), skicka in den nya sökvägen på servern till databasen, för att slutligen flytta den uppladdade filen till sökvägens plats?

Om man bara låter filerna vara som de är med alla möjliga konstiga namn när de laddas upp kan det ju bli konflikter om det redan finns en fil med samma namn. Det vill jag helst slippa!

Synpunkter på detta tänk? :)

Medlem sedan mars 20032 667 inlägg
#2

Ha en tabell med bildid, användarId och Url till bilden, då kan du i framtiden välja att låta användarna ladda upp fler än en bild. Skicka in användarId och ha bildId som räknare. Låt databashanteraren skapa sin räknare. Ta ut det nyss skapade bildId med last_insert_id() och uppdatera därefter Url med rätt sökväg. Döp också om bilden till BildId.filtyp.

Medlem sedan aug. 2001153 inlägg
#3

Om man bara låter filerna vara som de är med alla möjliga konstiga namn när de laddas upp kan det ju bli konflikter om det redan finns en fil med samma namn. Det vill jag helst slippa!

Om man inte bryr sig så mkt om vad filerna heter på servern (t.ex om man bara har filnamnet länkat i en databas) så kan man använda funktionen tempnam() . Den skapar ett unikt filnamn.

http://se.php.net/manual/en/function.tempnam.php

Medlem sedan apr. 20041 597 inlägg
#4

K@llen skrev:

Ha en tabell med bildid, användarId och Url till bilden, då kan du i framtiden välja att låta användarna ladda upp fler än en bild. Skicka in användarId och ha bildId som räknare. Låt databashanteraren skapa sin räknare. Ta ut det nyss skapade bildId med last_insert_id() och uppdatera därefter Url med rätt sökväg. Döp också om bilden till BildId.filtyp.

Det var precis så jag ville ha det ... :)

253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)