2017-02-19 2 views
-1

Dieser Code funktionierte gut, bis mein Server auf PHP 5.6 aktualisiert wurde.Hochladen des Bildes seit Serverwechsel auf PHP 5.6

<?php 

if (isset($GLOBALS["HTTP_RAW_POST_DATA"])) { 
    $imageData = $GLOBALS['HTTP_RAW_POST_DATA']; 

    $filteredData = substr($imageData, strpos($imageData, ",")+1); 
    $unencodedData = base64_decode($filteredData); 

    $fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false); 
    $fp = fopen('upload/' . $fn, 'w'); 
    fwrite($fp, $unencodedData); 
    fclose($fp); 
} 

Ich bin ein Neuling bei PHP, Tweaking Open-Source-Code, wenn ich es brauche.

+0

das ist alte Code 'GLOBALS [„HTTP_RAW_POST_DATA“]' ersetzen – nogad

+0

Würde klug sein, einen Blick in das Handbuch zu nehmen mit: http://php.net/manual/en/reserved.variables.httprawpostdata.php (seit 5.6 veraltet). Ich würde mir das PHP-Fehlerprotokoll anschauen, um zu sehen, ob da etwas ist. Nicht ganz sicher, warum Sie so etwas wie das, was Sie hier verwenden, verwenden, aber wenn Sie nur Beispiele auswählen und herumspielen, das erklärt es, denke ich ... – junkfoodjunkie

+0

'das ist alter Code mit GLOBALS ["HTTP_RAW_POST_DATA "] ersetze es'. Ähm .. danke. Sinnvoll. –

Antwort

0

Yep "HTTP_RAW_POST_DATA" war der Schuldige. Sowie setRequestHeader akzeptiert keine Unterstriche mehr. In Antwort auf Ihre Frage junkfoodjunkie ist es für diese http://www.screentoys.com Ich baute es als ein Lernprojekt vor ein paar Jahren, aber die "Laden Sie Ihr eigenes Foto und speichern Sie es" Funktion hatte aufgehört zu arbeiten, daher meine Post. Ich hatte es eine ganze Weile nicht berührt und so erst kürzlich bemerkt. Nach einigen Experimenten hier ist das Update:

$img = file_get_contents("php://input"); 
$img = str_replace('data:image/jpeg;base64,', '', $img); 
$img = str_replace(' ', '+', $img); 
$data = base64_decode($img); 
$fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false); 
file_put_contents('upload/'.$fn, $data); 

Hatte sich ändern: xhr.setRequestHeader ("X_FILENAME", dropOneName); an: xhr.setRequestHeader ("X-FILENAME", dropOneName); in der JS auch.

Es speichert ein Drag 'n Canvas Bild auf den Server gelöscht.

Verwandte Themen