Ciao,
chiedo scusa anticipatamente perchè non conosco il linguaggio PHP (vengo da scuola ASP) ma mi trovo a dover utilizzare uno script per il cropping delle immagini che funziona in PHP.
Sono arrivato ad impostare correttamente i parametri nei file PHP per eseguire correttamente le operazioni, il tutto funziona però solo se eseguo le pagine sul dominio (aruba), mentre in locale (Windows 10 IIS + PHP) non funziona.
questo il codice del file canvas.php
Ho impostato la variabile $dir inserendo il percorso dove dovrebbe salvare le immagini.codice:<?php $nomeimmagine = $_REQUEST['id']; $sezione = $_REQUEST['sez']; header('Content-Type: application/json'); //ini_set('memory_limit','16M'); $error = false; $absolutedir = dirname(__FILE__); $dir = '/../../../public/images/' . $sezione . '/'; $serverdir = $absolutedir.$dir; $tmp = explode(',',$_POST['data']); $imgdata = base64_decode($tmp[1]); //$extension = strtolower(end(explode('.',$_POST['name']))); //$filename = substr($_POST['name'],0,-(strlen($extension) + 1)).'.'.substr(sha1(time()),0,6).'.'.$extension; $extension = 'jpg'; $filename = $nomeimmagine . '.' . $extension; $handle = fopen($serverdir.$filename,'w'); fwrite($handle, $imgdata); fclose($handle); $response = array( "status" => "success", "url" => $dir.$filename.'?'.time(), //added the time to force update when editting multiple times "filename" => $filename ); if (!empty($_POST['original'])) { $tmp = explode(',',$_POST['original']); $originaldata = base64_decode($tmp[1]); $original = substr($_POST['name'],0,-(strlen($extension) + 1)).'.'.substr(sha1(time()),0,6).'.original.'.$extension; $handle = fopen($serverdir.$original,'w'); fwrite($handle, $originaldata); fclose($handle); $response['original'] = $original; } print json_encode($response);
La cartella dove risiedono i files è "/admin/scripts/crop/"
Cosa sbaglio o cosa dovrei sapere ?
Poi anche:
- Sarebbe possibile inserire un percorso assoluto ? ad esempio partendo sempre dal root tipo /public/images/..... così da non avere dubbi sul percorso anche in caso di spostamento dello script.
- Non è necessario chiudere il linguaggio con "?>" ? Nei file originali non viene mai chiuso.
Grazie mille

Rispondi quotando