PUT-metodstöd
PUT-metodsupport
PHP ger stöd för HTTP PUT-metoden som används av vissa klienter för att lagra filer på en server. PUT-förfrågningar är mycket enklare än filuppladdningar som använder POST-förfrågningar och de ser ut ungefär så här:
PUT /path/filename.html HTTP/1.1
Detta skulle normalt betyda att den fjärranslutna klienten vill spara innehållet som följer som: `/path/filename.html` i din webbstruktur. Det är uppenbarligen ingen bra idé för Apache eller PHP att automatiskt låta alla skriva över vilka filer som helst i din webbstruktur. Så, för att hantera en sådan förfrågan måste du först tala om för din webbserver att du vill att ett visst PHP-skript ska hantera förfrågan. I Apache gör du detta med `Script`-direktivet. Det kan placeras nästan var som helst i din Apache-konfigurationsfil. En vanlig plats är inuti ett `<Directory>`-block eller kanske inuti ett `<VirtualHost>`-block. En rad som denna skulle göra susen:
Script PUT /put.php
Detta säger till Apache att skicka alla PUT-förfrågningar för URI:er som matchar kontexten där du placerade denna rad till skriptet `put.php`. Detta förutsätter naturligtvis att du har aktiverat PHP för .php-tillägget och att PHP är aktivt. Målresursen för alla PUT-förfrågningar till detta skript måste vara skriptet självt, inte ett filnamn som den uppladdade filen ska ha.
Med PHP skulle du sedan göra något liknande följande i din `put.php`. Detta skulle kopiera innehållet i den uppladdade filen till filen `myputfile.ext` på servern. Du skulle förmodligen vilja utföra några kontroller och/eller autentisera användaren innan du utför denna filkopiering.
Exempel #1 Spara HTTP PUT-filer
<?php /* PUT-data kommer in på stdin-strömmen */ $putdata = fopen("php://input", "r"); /* Öppna en fil för skrivning */ $fp = fopen("myputfile.ext", "w"); /* Läs data 1 KB i taget och skriv till filen */ while ($data = fread($putdata, 1024)) fwrite($fp, $data); /* Stäng strömmarna */ fclose($fp); fclose($putdata); ?>
Sidslut
Orginalhemsidan på Engelska :https://www.php.net/manual/en/features.file-upload.put-method.php
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp.se som har sponsrat Linux.se med webserver.