PUT-metodstöd

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

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

PHP
Funktioner


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.