Lagra användaröverförda filer i en MySQL-databas

Ibland är det bra att samla in data från dina webbplatsanvändare och lagra denna information i en MySQL databas. Vi har redan sett att du kan fylla i en databas med PHP, nu lägger vi till det praktiska med att låta data läggas till via en användarvänlig webbformulär.

Därefter måste du skapa process.php, sidan som vårt formulär skickar sina data till. Här är ett exempel på hur man samlar in dessa data för att publicera i MySQL-databasen:

Naturligtvis måste vi se till att bordet faktiskt finns innan vi försöker. Att köra denna kod bör skapa en tabell som kan användas med våra exempelfiler:

Nu vet du hur du lagrar användardata i MySQL, så låt oss ta det ett steg längre och lära dig hur du laddar upp en fil för lagring. Låt oss först göra vår provdatabas:

Det första du bör märka är ett fält som heter id som är inställd på AUTO_INCREMENT. Vad är detta data typ betyder att det kommer att räkna upp för att tilldela varje fil ett unikt fil-ID som börjar på 1 och går till 9999 (eftersom vi angav fyra siffror). Du kommer också antagligen att märka att vårt datafält heter

instagram viewer
LONGBLOB. Det finns många typer av BLOB som vi har nämnt tidigare. TINYBLOB, BLOB, MEDIUMBLOB och LONGBLOB är dina alternativ, men vi ställer vårt till LONGBLOB för att möjliggöra största möjliga filer.

Därefter skapar vi ett formulär som låter användaren ladda upp sin fil. Detta är bara en enkel form, uppenbarligen kan du klä upp den om du ville:

Därefter måste vi faktiskt skapa upload.php, vilket tar våra användarfiler och lagrar den i vår databas. Nedan visas provkodning för upload.php.

Därefter använder den addslashes fungera. Vad detta gör är att lägga till backstänk om det behövs i filnamnet så att vi inte får ett fel när vi frågar databasen. Om vi ​​till exempel har Billy'sFile.gif kommer det att konverteras till Billy'sFile.gif. fopen öppnar filen och fread är en binär säker fil läst så att addslashes tillämpas på data i filen om det behövs.

Därefter lägger vi till all information som vårt formulär samlade in i vår databas. Du kommer att märka att vi listade fälten först och värdena andra så att vi inte av misstag försöker infoga data i vårt första fält (det automatiska tilldelande ID-fältet.)

Vi har redan lärt oss att hämta enkel data från vår MySQL-databas. På samma sätt skulle lagring av dina filer i en MySQL-databas inte vara praktiskt om det inte fanns något sätt att hämta dem. Hur vi ska lära oss att göra detta är genom att tilldela varje fil en URL baserat på deras ID-nummer. Om du kommer ihåg när vi laddade upp filerna tilldelade vi varje fil automatiskt ett ID-nummer. Vi kommer att använda det här när vi ringer tillbaka filerna. Spara den här koden som download.php

För att hämta vår fil nu pekar vi vår webbläsare till: http://www.yoursite.com/download.php? id = 2 (ersätt de 2 med vilket fil-ID du vill ladda ner / visa)

Den här koden är basen för att göra många saker. Med detta som bas kan du lägga till en databasfråga som listar filer och lägga dem i en rullgardinsmeny för personer att välja. Eller så kan du ställa in ID till ett slumpmässigt skapat nummer så att en annan grafik från din databas visas slumpmässigt varje gång en person besöker. Möjligheterna är oändliga.

Liksom vår tidigare kod som laddade ner filer, tillåter det här skriptet att ta bort filer bara genom att skriva in deras URL: http://yoursite.com/remove.php? id = 2 (ersätt 2 med det ID du vill ta bort.) Av uppenbara skäl vill du göra det var försiktig med den här koden. Detta är naturligtvis för demonstration, när vi faktiskt bygger applikationer kommer vi att vilja säkerställa det fråga användaren om de är säker på att de vill ta bort, eller kanske bara låta personer med lösenord ta bort filer. Denna enkla kod är basen vi bygger på för att göra alla dessa saker.

instagram story viewer