File dav/method/PUT.class.php

Last commit: Thu Nov 7 22:05:43 2019 +0100	Jan Dankert	Fix: Needing a filename for a new file.
1 <?php 2 3 class DAV_PUT extends DAV 4 { 5 6 7 /** 8 * Anlegen oder �berschreiben Dateien �ber PUT.<br> 9 * Dateien k�nnen neu angelegt und �berschrieben werden.<br> 10 * <br> 11 * Seiten k�nnen nicht �berschrieben werden. Wird versucht, 12 * eine Seite mit PUT zu �berschreiben, wird der Status "405 Not Allowed" gemeldet.<br> 13 */ 14 public function execute() 15 { 16 // TODO: 409 (Conflict) wenn übergeordneter Ordner nicht da. 17 18 if ( $this->readonly ) 19 { 20 $this->httpMethodNotAllowed(); 21 } 22 elseif ( strlen($this->data) > $this->maxFileSize*1000 ) 23 { 24 // Maximale Dateigroesse ueberschritten. 25 // Der Status 507 "Zuwenig Speicherplatz" passt nicht ganz, aber fast :) 26 $this->httpStatus('507 Insufficient Storage' ); 27 } 28 elseif ( ! $this->request->exists() ) 29 { 30 // Neue Datei anlegen 31 if ( !$this->create ) 32 { 33 Logger::warn('WEBDAV: Creation of files not allowed by configuration' ); 34 $this->httpStatus('405 Not Allowed' ); 35 return; 36 } 37 38 $folderid = $this->request->folderid; 39 $this->client->fileAdd( $folderid,$this->request->basename,$this->data ); 40 $this->httpStatus('201 Created'); 41 return; 42 } 43 elseif ( $this->request->exists() ) 44 { 45 // Bestehende Datei ueberschreiben. 46 $id = $this->request->objectid; 47 $this->client->fileWrite( $id,$this->data ); 48 49 $this->httpStatus('204 No Content'); 50 return; 51 } 52 elseif ( $this->request->type == URIParser::FOLDER ) 53 { 54 Logger::error('PUT on folder is not supported, use PROPFIND. Lame client?' ); 55 $this->httpMethodNotAllowed(); 56 } 57 else 58 { 59 // Fuer andere Objekttypen (Links, Seiten) ist kein PUT moeglich. 60 Logger::warn('PUT only available for files. Pages and links are ignored' ); 61 $this->httpMethodNotAllowed(); 62 } 63 } 64 65 66 }
Download dav/method/PUT.class.php
History Thu, 7 Nov 2019 22:05:43 +0100 Jan Dankert Fix: Needing a filename for a new file. Thu, 7 Nov 2019 21:54:48 +0100 Jan Dankert Fix: Uploading files. Wed, 6 Nov 2019 23:55:30 +0100 Jan Dankert Fixes for uploading files. Mon, 4 Nov 2019 23:56:38 +0100 Jan Dankert Refactoring: Renaming WebDAV to DAV base class. Mon, 4 Nov 2019 23:54:13 +0100 Jan Dankert Refactoring: Splitting DAV methods into single files.