File: app/modules/properties/upload_images.php

Recommend this page to a friend!
  Classes of Laudir Bispo  >  PHP Real Estate Website  >  app/modules/properties/upload_images.php  >  Download  
File: app/modules/properties/upload_images.php
Role: Example script
Content type: text/plain
Description: Example script
Class: PHP Real Estate Website
Manage the properties of a real estate business
Author: By
Last change:
Date: 6 months ago
Size: 6,843 bytes
 

Contents

Class file image Download
<?php
require_once ($_SERVER['DOCUMENT_ROOT'].'/config/config.php');
session_name(SESSION_NAME);
session_start();
header("Access-Control-Allow-Origin: *");
require_once (
$_SERVER['DOCUMENT_ROOT'].'/config/autoload.php');
require_once (
$_SERVER['DOCUMENT_ROOT'].'/config/public_functions.php');
require_once (
$_SERVER['DOCUMENT_ROOT'].'/libs/WideImage/WideImage.php');
require_once (
$_SERVER['DOCUMENT_ROOT'].'/app/controls/adminFunctions.php');

if(
$_SESSION['user_type'] != 'administrador' and $_SESSION['user_type'] != 'suporte' )
{
    if(!isset(
$_SESSION['properties_edit']) or $_SESSION['properties_edit'] !== 'Y' )
    {
        die(
'<div class="ajax-file-upload-error alert alert-warning" role="alert">Você não tem permissão para realizar está ação!</div>');
    }
}

if(
$_POST['form-token'] != md5(SECRET_FORM_TOKEN.$_SESSION['user_id'].$_SESSION['user']) )
{
     die(
'<div class="ajax-file-upload-error alert alert-warning" role="alert">A origem de alguns dados nos parece duvidosa! Por isso bloqueamos está ação!</div>');
}

if( !isset(
$_POST['user_id']) or (int)$_POST['user_id'] !== (int)$_SESSION['user_id'] )
{
    die(
'<div class="ajax-file-upload-error alert alert-warning" role="alert">Uploadinterrompido! Não foi possível comprocar sua identidade.</div>');
}

//--------------------------------------------------------------------------

if( empty($_FILES['images']) or !isset($_FILES['images']) )
{
    die(
'<div class="ajax-file-upload-error alert alert-warning" role="alert">Arquivo não reconhecido ou inexistente!</div>');
}

if( empty(
$_POST['id_properties']) or !isset($_POST['id_properties']) )
{
    die(
'<div class="ajax-file-upload-error alert alert-warning" role="alert"><i CLASS="fa fa-exclamation-triangle"></i> Álbum não identificado! </div><br>');
}
else
{
   
$id_properties = filterString($_POST['id_properties'], 'INT');
}

$images = $_FILES['images'];
$allowed_types = array('jpg', 'png', 'gif', 'jpeg', 'JPG', 'PNG', 'GIF', 'JPEG');

$images_name = $images['name'];
$images_type = $images['type'];
$images_tmp_name = $images['tmp_name'];
$images_size = $images['size'];
$images_error = $images["error"];
$images_ext = strtolower(pathinfo($images_name, PATHINFO_EXTENSION));

switch (
$images_error) {
    case
UPLOAD_ERR_INI_SIZE:
       
$upload_error = "<p>O arquivo enviado excede o tamanho máximo permitido pelo servidor.</p>";
        break;
    case
UPLOAD_ERR_FORM_SIZE:
       
$upload_error = "<p>O arquivo enviado excede o tamanho máximo permitido pelo sistema.</p>";
        break;
    case
UPLOAD_ERR_PARTIAL:
       
$upload_error = "<p>O arquivo enviado não foi carregado completamente. Tente novamente.</p>";
        break;
    case
UPLOAD_ERR_NO_FILE:
       
$upload_error = "<p>Nenhum arquivo foi enviado.</p>";
        break;
    case
UPLOAD_ERR_NO_TMP_DIR:
       
$upload_error = "Não é possível salvar na pasta temporária.";
        break;
    case
UPLOAD_ERR_CANT_WRITE:
       
$upload_error = "<p>Falha ao gravar o arquivo no disco. Verefique se você tem permissão para escrita no disco.</p>";
        break;
    case
UPLOAD_ERR_EXTENSION:
       
$upload_error = "<p>Algo de errado aconteceu. Tente novamente.</p>";
        break;

    default:
       
$upload_error = '';
        break;
}

if(!empty(
$upload_error)) die($upload_error);
   
   
if(
$images_size > 0 and mb_strlen($images_name, 'utf8') < 1 )
{
    die(
'<div class="ajax-file-upload-error alert alert-warning" role="alert">'.$images_name.' não parece ser uma imagem!</div><br>');
}
if ( !
in_array($images_ext, $allowed_types) )
{
    die(
'<div class="ajax-file-upload-error alert alert-warning" role="alert"> A imagem '.$images_name.' possui o formato não permitido! </div><br>');
}

//diretório do imóvel
$dir_properties = '/docs/properties/'.$id_properties;

$dir_big_images = $dir_properties.'/big';
$dir_small_images = $dir_properties.'/small';
$images_new_name = time().mt_rand(111111, 999999).'.'.$images_ext;

$tmp_file = '/tmp/'.$images_new_name;

$image_big = $dir_big_images.'/'.$images_new_name;
$image_small = $dir_small_images.'/'.$images_new_name;

/**
 * Upload images by FTP connection
 * Configure data in "/config/config.php"
 */

$ftp_connect = ftp_connect(SUBDOMAIN_FTP) or die('<div class="ajax-file-upload-error alert alert-danger" role="alert"> Não foi possível se conectar ao servidor.</div><br>');
//faz login FTP
ftp_login($ftp_connect, USER_FTP, PASS_FTP);


if(!
file_exists('ftp://'.USER_FTP.':'.PASS_FTP.'@'.SUBDOMAIN_FTP.$dir_properties) )
{
   
//echo ('ftp://'.USER_FTP.':'.PASS_FTP.'@'.SUBDOMAIN_FTP.$dir_properties);
   
@ftp_mkdir($ftp_connect, $dir_properties);
    @
ftp_chmod($ftp_connect, 0777, $dir_properties);
}

if( !
file_exists('ftp://'.USER_FTP.':'.PASS_FTP.'@'.SUBDOMAIN_FTP.$dir_big_images) )
{
    @
ftp_mkdir($ftp_connect, $dir_big_images);
    @
ftp_chmod($ftp_connect, 0777, $dir_big_images);
}

if( !
file_exists('ftp://'.USER_FTP.':'.PASS_FTP.'@'.SUBDOMAIN_FTP.$dir_small_images) )
{
    @
ftp_mkdir($ftp_connect, $dir_small_images);
    @
ftp_chmod($ftp_connect, 0777, $dir_small_images);
}

ftp_put($ftp_connect, $tmp_file, $images_tmp_name, FTP_BINARY );

$image_wide = new WideImage();
$image_wide = WideImage::load($_SERVER['DOCUMENT_ROOT'].$tmp_file);

if(
$images_ext == 'jpg' or $images_ext == 'jpeg' )
{
  
$image_wide = $image_wide->resize(1920, 1080, 'inside', 'down');
  
$image_wide->saveToFile($_SERVER['DOCUMENT_ROOT'].$image_big, 90);

  
$image_wide = $image_wide->resize(480, 360, 'inside', 'down');
  
$image_wide->saveToFile($_SERVER['DOCUMENT_ROOT'].$image_small, 90);
}
else if(
$images_ext == 'png' )
{
  
$image_wide->saveToFile($_SERVER['DOCUMENT_ROOT'].$image_big, 9);
  
$image_wide->saveToFile($_SERVER['DOCUMENT_ROOT'].$image_small, 9);
}
else
{
  
$image_wide->saveToFile($_SERVER['DOCUMENT_ROOT'].$image_big);
  
$image_wide->saveToFile($_SERVER['DOCUMENT_ROOT'].$image_small);
}

if (
file_exists($_SERVER['DOCUMENT_ROOT'].$tmp_file))
{
   
unlink($_SERVER['DOCUMENT_ROOT'].$tmp_file);
}

ftp_close($ftp_connect);

$con_db = new config\connect_db();
$con = $con_db->connect();

$insert_image = $con->prepare("INSERT INTO images_properties (id_properties, image, date_post) VALUES (?, ?, ?) ") or die(mysqli_error($con));
$insert_image->bind_param('iss', $id_properties, $images_new_name, $date_time);
$insert_image->execute() ;
$insert_image->store_result();
$rows_insert_image = $insert_image->affected_rows;
$insert_image->free_result();
$insert_image->close();

if(
$insert_image and $rows_insert_image > 0 )
{
   
//die ('<div class="ajax-file-upload-error alert alert-success" role="alert"> '.$images_name.' upload completo! </div><br>');
}
else
{
    die (
'<div class="ajax-file-upload-error alert alert-danger" role="alert">'.$images_name.' não pode ser salva! </div><br>');
}

For more information send a message to info at phpclasses dot org.