add record to database

680 views
Skip to first unread message

Abdiel Perez Tellez

unread,
Apr 23, 2013, 7:39:31 PM4/23/13
to jquery-f...@googlegroups.com
I've followed the steps from "https://github.com/blueimp/jQuery-File-Upload/wiki/Working-with-databases" to add the names of my uploaded file, and I can't find what it's wrong. Below is my code. I'm going to light-mark the edited code. I'm not very good at php so any help will be appreciate.  Thank you in advance.




<?php
/*
 * jQuery File Upload Plugin PHP Class 6.4.1
 * https://github.com/blueimp/jQuery-File-Upload
 *
 * Copyright 2010, Sebastian Tschan
 * https://blueimp.net
 *
 * Licensed under the MIT license:
 * http://www.opensource.org/licenses/MIT
 */



class UploadHandler
{
   
protected $options;
   
// PHP File Upload error message codes:
   
// http://php.net/manual/en/features.file-upload.errors.php
   
protected $error_messages = array(
       
1 => 'The uploaded file exceeds the upload_max_filesize directive in php.ini',
       
2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form',
       
3 => 'The uploaded file was only partially uploaded',
       
4 => 'No file was uploaded',
       
6 => 'Missing a temporary folder',
       
7 => 'Failed to write file to disk',
       
8 => 'A PHP extension stopped the file upload',
       
'post_max_size' => 'The uploaded file exceeds the post_max_size directive in php.ini',
       
'max_file_size' => 'File is too big',
       
'min_file_size' => 'File is too small',
       
'accept_file_types' => 'Filetype not allowed',
       
'max_number_of_files' => 'Maximum number of files exceeded',
       
'max_width' => 'Image exceeds maximum width',
       
'min_width' => 'Image requires a minimum width',
       
'max_height' => 'Image exceeds maximum height',
       
'min_height' => 'Image requires a minimum height'
   
);


   
function __construct($options = null, $initialize = true, $error_messages = null) {
        $this
->options = array(


           
 // mysql connection settings  
                'database' => 'ibc',  
                'host' => 'localhost',  
                'username' => 'root',  
                'password' => '',   
               // end 



           
'script_url' => $this->get_full_url().'/',
           
'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).'/files/',
           
'upload_url' => $this->get_full_url().'/files/',
           
'user_dirs' => false,
           
'mkdir_mode' => 0755,
           
'param_name' => 'files',
           
// Set the following option to 'POST', if your server does not support
           
// DELETE requests. This is a parameter sent to the client:
           
'delete_type' => 'DELETE',
           
'access_control_allow_origin' => '*',
           
'access_control_allow_credentials' => false,
           
'access_control_allow_methods' => array(
               
'OPTIONS',
               
'HEAD',
               
'GET',
               
'POST',
               
'PUT',
               
'PATCH',
               
'DELETE'
           
),
           
'access_control_allow_headers' => array(
               
'Content-Type',
               
'Content-Range',
               
'Content-Disposition'
           
),
           
// Enable to provide file downloads via GET requests to the PHP script:
           
'download_via_php' => false,
           
// Defines which files can be displayed inline when downloaded:
           
'inline_file_types' => '/\.(gif|jpe?g|png)$/i',
           
// Defines which files (based on their names) are accepted for upload:
           
'accept_file_types' => '/.+$/i',
           
// The php.ini settings upload_max_filesize and post_max_size
           
// take precedence over the following max_file_size setting:
           
'max_file_size' => null,
           
'min_file_size' => 1,
           
// The maximum number of files for the upload directory:
           
'max_number_of_files' => null,
           
// Image resolution restrictions:
           
'max_width' => null,
           
'max_height' => null,
           
'min_width' => 1,
           
'min_height' => 1,
           
// Set the following option to false to enable resumable uploads:
           
'discard_aborted_uploads' => true,
           
// Set to true to rotate images based on EXIF meta data, if available:
           
'orient_image' => false,
           
'image_versions' => array(
               
// Uncomment the following version to restrict the size of
               
// uploaded images:
               
/*
                '' => array(
                    'max_width' => 1920,
                    'max_height' => 1200,
                    'jpeg_quality' => 95
                ),
                */

               
// Uncomment the following to create medium sized images:
               
/*
                'medium' => array(
                    'max_width' => 800,
                    'max_height' => 600,
                    'jpeg_quality' => 80
                ),
                */

               
'thumbnail' => array(
                   
// Uncomment the following to force the max
                   
// dimensions and e.g. create square thumbnails:
                   
//'crop' => true,
                   
'max_width' => 80,
                   
'max_height' => 80
               
)
           
)
       
);
       
if ($options) {
            $this
->options = array_merge($this->options, $options);
       
}
       
if ($error_messages) {
            $this
->error_messages = array_merge($this->error_messages, $error_messages);
       
}
       
if ($initialize) {
            $this
->initialize();
       
}
   
}


   
protected function initialize() {
       
switch ($_SERVER['REQUEST_METHOD']) {
           
case 'OPTIONS':
           
case 'HEAD':
                $this
->head();
               
break;
           
case 'GET':
                $this
->get();
               
break;
           
case 'PATCH':
           
case 'PUT':
           
case 'POST':
                $this
->post();
               
break;
           
case 'DELETE':
                $this
->delete();
               
break;
           
default:
                $this
->header('HTTP/1.1 405 Method Not Allowed');
       
}
   
}


   
protected function get_full_url() {
        $https
= !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off';
       
return
           
($https ? 'https://' : 'http://').
           
(!empty($_SERVER['REMOTE_USER']) ? $_SERVER['REMOTE_USER'].'@' : '').
           
(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME'].
           
($https && $_SERVER['SERVER_PORT'] === 443 ||
            $_SERVER
['SERVER_PORT'] === 80 ? '' : ':'.$_SERVER['SERVER_PORT']))).
            substr
($_SERVER['SCRIPT_NAME'],0, strrpos($_SERVER['SCRIPT_NAME'], '/'));
   
}


   
protected function get_user_id() {
       
@session_start();
       
return session_id();
   
}


   
protected function get_user_path() {
       
if ($this->options['user_dirs']) {
           
return $this->get_user_id().'/';
       
}
       
return '';
   
}


   
protected function get_upload_path($file_name = null, $version = null) {
        $file_name
= $file_name ? $file_name : '';
        $version_path
= empty($version) ? '' : $version.'/';
       
return $this->options['upload_dir'].$this->get_user_path()
           
.$version_path.$file_name;
   
}


   
protected function get_query_separator($url) {
       
return strpos($url, '?') === false ? '?' : '&';
   
}


   
protected function get_download_url($file_name, $version = null) {
       
if ($this->options['download_via_php']) {
            $url
= $this->options['script_url']
               
.$this->get_query_separator($this->options['script_url'])
               
.'file='.rawurlencode($file_name);
           
if ($version) {
                $url
.= '&version='.rawurlencode($version);
           
}
           
return $url.'&download=1';
       
}
        $version_path
= empty($version) ? '' : rawurlencode($version).'/';
       
return $this->options['upload_url'].$this->get_user_path()
           
.$version_path.rawurlencode($file_name);
   
}


   
protected function set_file_delete_properties($file) {
        $file
->delete_url = $this->options['script_url']
           
.$this->get_query_separator($this->options['script_url'])
           
.'file='.rawurlencode($file->name);
        $file
->delete_type = $this->options['delete_type'];
       
if ($file->delete_type !== 'DELETE') {
            $file
->delete_url .= '&_method=DELETE';
       
}
       
if ($this->options['access_control_allow_credentials']) {
            $file
->delete_with_credentials = true;
       
}
   
}


   
// Fix for overflowing signed 32 bit integers,
   
// works for sizes up to 2^32-1 bytes (4 GiB - 1):
   
protected function fix_integer_overflow($size) {
       
if ($size < 0) {
            $size
+= 2.0 * (PHP_INT_MAX + 1);
       
}
       
return $size;
   
}


   
protected function get_file_size($file_path, $clear_stat_cache = false) {
       
if ($clear_stat_cache) {
            clearstatcache
(true, $file_path);
       
}
       
return $this->fix_integer_overflow(filesize($file_path));


   
}


   
protected function is_valid_file_object($file_name) {
        $file_path
= $this->get_upload_path($file_name);
       
if (is_file($file_path) && $file_name[0] !== '.') {
           
return true;
       
}
       
return false;
   
}


   
protected function get_file_object($file_name) {
       
if ($this->is_valid_file_object($file_name)) {
            $file
= new stdClass();
            $file
->name = $file_name;
            $file
->size = $this->get_file_size(
                $this
->get_upload_path($file_name)
           
);
            $file
->url = $this->get_download_url($file->name);
           
foreach($this->options['image_versions'] as $version => $options) {
               
if (!empty($version)) {
                   
if (is_file($this->get_upload_path($file_name, $version))) {
                        $file
->{$version.'_url'} = $this->get_download_url(
                            $file
->name,
                            $version
                       
);
                   
}
               
}
           
}
            $this
->set_file_delete_properties($file);
           
return $file;
       
}
       
return null;
   
}


   
protected function get_file_objects($iteration_method = 'get_file_object') {
        $upload_dir
= $this->get_upload_path();
       
if (!is_dir($upload_dir)) {
           
return array();
       
}
       
return array_values(array_filter(array_map(
            array
($this, $iteration_method),
            scandir
($upload_dir)
       
)));
   
}


   
protected function count_file_objects() {
       
return count($this->get_file_objects('is_valid_file_object'));
   
}


   
protected function create_scaled_image($file_name, $version, $options) {
        $file_path
= $this->get_upload_path($file_name);
       
if (!empty($version)) {
            $version_dir
= $this->get_upload_path(null, $version);
           
if (!is_dir($version_dir)) {
                mkdir
($version_dir, $this->options['mkdir_mode'], true);
           
}
            $new_file_path
= $version_dir.'/'.$file_name;
       
} else {
            $new_file_path
= $file_path;
       
}
       
if (!function_exists('getimagesize')) {
            error_log
('Function not found: getimagesize');
           
return false;
       
}
        list
($img_width, $img_height) = @getimagesize($file_path);
       
if (!$img_width || !$img_height) {
           
return false;
       
}
        $max_width
= $options['max_width'];
        $max_height
= $options['max_height'];
        $scale
= min(
            $max_width
/ $img_width,
            $max_height
/ $img_height
       
);
       
if ($scale >= 1) {
           
if ($file_path !== $new_file_path) {
               
return copy($file_path, $new_file_path);
           
}
           
return true;
       
}
       
if (!function_exists('imagecreatetruecolor')) {
            error_log
('Function not found: imagecreatetruecolor');
           
return false;
       
}
       
if (empty($options['crop'])) {
            $new_width
= $img_width * $scale;
            $new_height
= $img_height * $scale;
            $dst_x
= 0;
            $dst_y
= 0;
            $new_img
= @imagecreatetruecolor($new_width, $new_height);
       
} else {
           
if (($img_width / $img_height) >= ($max_width / $max_height)) {
                $new_width
= $img_width / ($img_height / $max_height);
                $new_height
= $max_height;
           
} else {
                $new_width
= $max_width;
                $new_height
= $img_height / ($img_width / $max_width);
           
}
            $dst_x
= 0 - ($new_width - $max_width) / 2;
            $dst_y
= 0 - ($new_height - $max_height) / 2;
            $new_img
= @imagecreatetruecolor($max_width, $max_height);
       
}
       
switch (strtolower(substr(strrchr($file_name, '.'), 1))) {
           
case 'jpg':
           
case 'jpeg':
                $src_img
= @imagecreatefromjpeg($file_path);
                $write_image
= 'imagejpeg';
                $image_quality
= isset($options['jpeg_quality']) ?
                    $options
['jpeg_quality'] : 75;
               
break;
           
case 'gif':
               
@imagecolortransparent($new_img, @imagecolorallocate($new_img, 0, 0, 0));
                $src_img
= @imagecreatefromgif($file_path);
                $write_image
= 'imagegif';
                $image_quality
= null;
               
break;
           
case 'png':
               
@imagecolortransparent($new_img, @imagecolorallocate($new_img, 0, 0, 0));
               
@imagealphablending($new_img, false);
               
@imagesavealpha($new_img, true);
                $src_img
= @imagecreatefrompng($file_path);
                $write_image
= 'imagepng';
                $image_quality
= isset($options['png_quality']) ?
                    $options
['png_quality'] : 9;
               
break;
           
default:
                $src_img
= null;
       
}
        $success
= $src_img && @imagecopyresampled(
            $new_img
,
            $src_img
,
            $dst_x
,
            $dst_y
,
           
0,
           
0,
            $new_width
,
            $new_height
,
            $img_width
,
            $img_height
       
) && $write_image($new_img, $new_file_path, $image_quality);
       
// Free up memory (imagedestroy does not delete files):
       
@imagedestroy($src_img);
       
@imagedestroy($new_img);
       
return $success;
   
}


   
protected function get_error_message($error) {
       
return array_key_exists($error, $this->error_messages) ?
            $this
->error_messages[$error] : $error;
   
}


   
function get_config_bytes($val) {
        $val
= trim($val);
        $last
= strtolower($val[strlen($val)-1]);
       
switch($last) {
           
case 'g':
                $val
*= 1024;
           
case 'm':
                $val
*= 1024;
           
case 'k':
                $val
*= 1024;
       
}
       
return $this->fix_integer_overflow($val);
   
}


   
protected function validate($uploaded_file, $file, $error, $index) {
       
if ($error) {
            $file
->error = $this->get_error_message($error);
           
return false;
       
}
        $content_length
= $this->fix_integer_overflow(intval($_SERVER['CONTENT_LENGTH']));
        $post_max_size
= $this->get_config_bytes(ini_get('post_max_size'));
       
if ($post_max_size && ($content_length > $post_max_size)) {
            $file
->error = $this->get_error_message('post_max_size');
           
return false;
       
}
       
if (!preg_match($this->options['accept_file_types'], $file->name)) {
            $file
->error = $this->get_error_message('accept_file_types');
           
return false;
       
}
       
if ($uploaded_file && is_uploaded_file($uploaded_file)) {
            $file_size
= $this->get_file_size($uploaded_file);
       
} else {
            $file_size
= $content_length;
       
}
       
if ($this->options['max_file_size'] && (
                $file_size
> $this->options['max_file_size'] ||
                $file
->size > $this->options['max_file_size'])
           
) {
            $file
->error = $this->get_error_message('max_file_size');
           
return false;
       
}
       
if ($this->options['min_file_size'] &&
            $file_size
< $this->options['min_file_size']) {
            $file
->error = $this->get_error_message('min_file_size');
           
return false;
       
}
       
if (is_int($this->options['max_number_of_files']) && (
                $this
->count_file_objects() >= $this->options['max_number_of_files'])
           
) {
            $file
->error = $this->get_error_message('max_number_of_files');
           
return false;
       
}
        list
($img_width, $img_height) = @getimagesize($uploaded_file);
       
if (is_int($img_width)) {
           
if ($this->options['max_width'] && $img_width > $this->options['max_width']) {
                $file
->error = $this->get_error_message('max_width');
               
return false;
           
}
           
if ($this->options['max_height'] && $img_height > $this->options['max_height']) {
                $file
->error = $this->get_error_message('max_height');
               
return false;
           
}
           
if ($this->options['min_width'] && $img_width < $this->options['min_width']) {
                $file
->error = $this->get_error_message('min_width');
               
return false;
           
}
           
if ($this->options['min_height'] && $img_height < $this->options['min_height']) {
                $file
->error = $this->get_error_message('min_height');
               
return false;
           
}
       
}
       
return true;
   
}


   
protected function upcount_name_callback($matches) {
        $index
= isset($matches[1]) ? intval($matches[1]) + 1 : 1;
        $ext
= isset($matches[2]) ? $matches[2] : '';
       
return ' ('.$index.')'.$ext;
   
}


   
protected function upcount_name($name) {
       
return preg_replace_callback(
           
'/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/',
            array
($this, 'upcount_name_callback'),
            $name
,
           
1
       
);
   
}


   
protected function get_unique_filename($name, $type, $index, $content_range) {
       
while(is_dir($this->get_upload_path($name))) {
            $name
= $this->upcount_name($name);
       
}
       
// Keep an existing filename if this is part of a chunked upload:
        $uploaded_bytes
= $this->fix_integer_overflow(intval($content_range[1]));
       
while(is_file($this->get_upload_path($name))) {
           
if ($uploaded_bytes === $this->get_file_size(
                    $this
->get_upload_path($name))) {
               
break;
           
}
            $name
= $this->upcount_name($name);
       
}
       
return $name;
   
}


   
protected function trim_file_name($name, $type, $index, $content_range) {
       
// Remove path information and dots around the filename, to prevent uploading
       
// into different directories or replacing hidden system files.
       
// Also remove control characters and spaces (\x00..\x20) around the filename:
        $name
= trim(basename(stripslashes($name)), ".\x00..\x20");
       
// Use a timestamp for empty filenames:
       
if (!$name) {
            $name
= str_replace('.', '-', microtime(true));
       
}
       
// Add missing file extension for known image types:
       
if (strpos($name, '.') === false &&
            preg_match
('/^image\/(gif|jpe?g|png)/', $type, $matches)) {
            $name
.= '.'.$matches[1];
       
}
       
return $name;
   
}


   
protected function get_file_name($name, $type, $index, $content_range) {
       
return $this->get_unique_filename(
            $this
->trim_file_name($name, $type, $index, $content_range),
            $type
,
            $index
,
            $content_range
       
);
   
}


   
protected function handle_form_data($file, $index) {
       
// Handle form data, e.g. $_REQUEST['description'][$index]
   
}


   
protected function orient_image($file_path) {
       
if (!function_exists('exif_read_data')) {
           
return false;
       
}
        $exif
= @exif_read_data($file_path);
       
if ($exif === false) {
           
return false;
       
}
        $orientation
= intval(@$exif['Orientation']);
       
if (!in_array($orientation, array(3, 6, 8))) {
           
return false;
       
}
        $image
= @imagecreatefromjpeg($file_path);
       
switch ($orientation) {
           
case 3:
                $image
= @imagerotate($image, 180, 0);
               
break;
           
case 6:
                $image
= @imagerotate($image, 270, 0);
               
break;
           
case 8:
                $image
= @imagerotate($image, 90, 0);
               
break;
           
default:
               
return false;
       
}
        $success
= imagejpeg($image, $file_path);
       
// Free up memory (imagedestroy does not delete files):
       
@imagedestroy($image);
       
return $success;
   
}


   
protected function handle_image_file($file_path, $file) {
       
if ($this->options['orient_image']) {
            $this
->orient_image($file_path);
       
}
        $failed_versions
= array();
       
foreach($this->options['image_versions'] as $version => $options) {
           
if ($this->create_scaled_image($file->name, $version, $options)) {
               
if (!empty($version)) {
                    $file
->{$version.'_url'} = $this->get_download_url(
                        $file
->name,
                        $version
                   
);
               
} else {
                    $file
->size = $this->get_file_size($file_path, true);
               
}
           
} else {
                $failed_versions
[] = $version;
           
}
       
}
       
switch (count($failed_versions)) {
           
case 0:
               
break;
           
case 1:
                $file
->error = 'Failed to create scaled version: '
                   
.$failed_versions[0];
               
break;
           
default:
                $file
->error = 'Failed to create scaled versions: '
                   
.implode($failed_versions,', ');
       
}
   
}


   
protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
            $index
= null, $content_range = null) {
        $file
= new stdClass();
        $file
->name = $this->get_file_name($name, $type, $index, $content_range);
        $file
->size = $this->fix_integer_overflow(intval($size));
        $file
->type = $type;
       
if ($this->validate($uploaded_file, $file, $error, $index)) {
            $this
->handle_form_data($file, $index);
            $upload_dir
= $this->get_upload_path();
           
if (!is_dir($upload_dir)) {
                mkdir
($upload_dir, $this->options['mkdir_mode'], true);
           
}
            $file_path
= $this->get_upload_path($file->name);
            $append_file
= $content_range && is_file($file_path) &&
                $file
->size > $this->get_file_size($file_path);
           
if ($uploaded_file && is_uploaded_file($uploaded_file)) {
               
// multipart/formdata uploads (POST method uploads)
               
if ($append_file) {
                    file_put_contents
(
                        $file_path
,
                        fopen
($uploaded_file, 'r'),
                        FILE_APPEND
                   
);
               
} else {
                    move_uploaded_file
($uploaded_file, $file_path);
               
}
           
} else {
               
// Non-multipart uploads (PUT method support)
                file_put_contents
(
                    $file_path
,
                    fopen
('php://input', 'r'),
                    $append_file
? FILE_APPEND : 0
               
);
           
}
            $file_size
= $this->get_file_size($file_path, $append_file);
           
if ($file_size === $file->size) {
                $file
->url = $this->get_download_url($file->name);
                list
($img_width, $img_height) = @getimagesize($file_path);
               
if (is_int($img_width)) {
                    $this
->handle_image_file($file_path, $file);
               
}
           
} else {
                $file
->size = $file_size;
                $file->upload_to_db = $this->add_img($file->name);
               
if (!$content_range && $this->options['discard_aborted_uploads']) {
                    unlink
($file_path);
                    $file
->error = 'abort';
               
}
           
}
            $this
->set_file_delete_properties($file);
       
}
       
return $file;
   
}




function query($query) {  
	$database = $this->options['database'];  
	$host = $this->options['host'];  
	$username = $this->options['username'];  
	$password = $this->options['password'];  
	$link = mysql_connect($host,$username,$password);  
	if (!$link) {  
		die(mysql_error());  
	}
	$db_selected = mysql_select_db($database);  
	if (!$db_selected) {  
		die(mysql_error());  
	}  
	$result = mysql_query($query);  
	mysql_close($link);  
	return $result;  
}  
function add_img($whichimg)  
{  
	$add_to_db = $this->query("INSERT INTO prueba (info) VALUES
	     ('".$whichimg."')") or die(mysql_error());  
	return $add_to_db;  
}



   
protected function readfile($file_path) {
       
return readfile($file_path);
   
}


   
protected function body($str) {
        echo $str
;
   
}
   
   
protected function header($str) {
        header
($str);
   
}


   
protected function generate_response($content, $print_response = true) {
       
if ($print_response) {
            $json
= json_encode($content);
            $redirect
= isset($_REQUEST['redirect']) ?
                stripslashes
($_REQUEST['redirect']) : null;
           
if ($redirect) {
                $this
->header('Location: '.sprintf($redirect, rawurlencode($json)));
               
return;
           
}
            $this
->head();
           
if (isset($_SERVER['HTTP_CONTENT_RANGE'])) {
                $files
= isset($content[$this->options['param_name']]) ?
                    $content
[$this->options['param_name']] : null;
               
if ($files && is_array($files) && is_object($files[0]) && $files[0]->size) {
                    $this
->header('Range: 0-'.($this->fix_integer_overflow(intval($files[0]->size)) - 1));
               
}
           
}
            $this
->body($json);
       
}
       
return $content;
   
}


   
protected function get_version_param() {
       
return isset($_GET['version']) ? basename(stripslashes($_GET['version'])) : null;
   
}


   
protected function get_file_name_param() {
       
return isset($_GET['file']) ? basename(stripslashes($_GET['file'])) : null;
   
}


   
protected function get_file_type($file_path) {
       
switch (strtolower(pathinfo($file_path, PATHINFO_EXTENSION))) {
           
case 'jpeg':
           
case 'jpg':
               
return 'image/jpeg';
           
case 'png':
               
return 'image/png';
           
case 'gif':
               
return 'image/gif';
           
default:
               
return '';
       
}
   
}


   
protected function download() {
       
if (!$this->options['download_via_php']) {
            $this
->header('HTTP/1.1 403 Forbidden');
           
return;
       
}
        $file_name
= $this->get_file_name_param();
       
if ($this->is_valid_file_object($file_name)) {
            $file_path
= $this->get_upload_path($file_name, $this->get_version_param());
           
if (is_file($file_path)) {
               
if (!preg_match($this->options['inline_file_types'], $file_name)) {
                    $this
->header('Content-Description: File Transfer');
                    $this
->header('Content-Type: application/octet-stream');
                    $this
->header('Content-Disposition: attachment; filename="'.$file_name.'"');
                    $this
->header('Content-Transfer-Encoding: binary');
               
} else {
                   
// Prevent Internet Explorer from MIME-sniffing the content-type:
                    $this
->header('X-Content-Type-Options: nosniff');
                    $this
->header('Content-Type: '.$this->get_file_type($file_path));
                    $this
->header('Content-Disposition: inline; filename="'.$file_name.'"');
               
}
                $this
->header('Content-Length: '.$this->get_file_size($file_path));
                $this
->header('Last-Modified: '.gmdate('D, d M Y H:i:s T', filemtime($file_path)));
                $this
->readfile($file_path);
           
}
       
}
   
}


   
protected function send_content_type_header() {
        $this
->header('Vary: Accept');
       
if (isset($_SERVER['HTTP_ACCEPT']) &&
           
(strpos($_SERVER['HTTP_ACCEPT'], 'application/json') !== false)) {
            $this
->header('Content-type: application/json');
       
} else {
            $this
->header('Content-type: text/plain');
       
}
   
}


   
protected function send_access_control_headers() {
        $this
->header('Access-Control-Allow-Origin: '.$this->options['access_control_allow_origin']);
        $this
->header('Access-Control-Allow-Credentials: '
           
.($this->options['access_control_allow_credentials'] ? 'true' : 'false'));
        $this
->header('Access-Control-Allow-Methods: '
           
.implode(', ', $this->options['access_control_allow_methods']));
        $this
->header('Access-Control-Allow-Headers: '
           
.implode(', ', $this->options['access_control_allow_headers']));
   
}


   
public function head() {
        $this
->header('Pragma: no-cache');
        $this
->header('Cache-Control: no-store, no-cache, must-revalidate');
        $this
->header('Content-Disposition: inline; filename="files.json"');
       
// Prevent Internet Explorer from MIME-sniffing the content-type:
        $this
->header('X-Content-Type-Options: nosniff');
       
if ($this->options['access_control_allow_origin']) {
            $this
->send_access_control_headers();
       
}
        $this
->send_content_type_header();
   
}


   
public function get($print_response = true) {
       
if ($print_response && isset($_GET['download'])) {
           
return $this->download();
       
}
        $file_name
= $this->get_file_name_param();
       
if ($file_name) {
            $response
= array(
                substr
($this->options['param_name'], 0, -1) => $this->get_file_object($file_name)
           
);
       
} else {
            $response
= array(
                $this
->options['param_name'] => $this->get_file_objects()
           
);
       
}
       
return $this->generate_response($response, $print_response);
   
}


   
public function post($print_response = true) {
       
if (isset($_REQUEST['_method']) && $_REQUEST['_method'] === 'DELETE') {
           
return $this->delete($print_response);
       
}
        $upload
= isset($_FILES[$this->options['param_name']]) ?
            $_FILES
[$this->options['param_name']] : null;
       
// Parse the Content-Disposition header, if available:
        $file_name
= isset($_SERVER['HTTP_CONTENT_DISPOSITION']) ?
            rawurldecode
(preg_replace(
               
'/(^[^"]+")|("$)/',
               
'',
                $_SERVER
['HTTP_CONTENT_DISPOSITION']
           
)) : null;
       
// Parse the Content-Range header, which has the following form:
       
// Content-Range: bytes 0-524287/2000000
        $content_range
= isset($_SERVER['HTTP_CONTENT_RANGE']) ?
            preg_split
('/[^0-9]+/', $_SERVER['HTTP_CONTENT_RANGE']) : null;
        $size
=  $content_range ? $content_range[3] : null;
        $files
= array();
       
if ($upload && is_array($upload['tmp_name'])) {
           
// param_name is an array identifier like "files[]",
           
// $_FILES is a multi-dimensional array:
           
foreach ($upload['tmp_name'] as $index => $value) {
                $files
[] = $this->handle_file_upload(
                    $upload
['tmp_name'][$index],
                    $file_name
? $file_name : $upload['name'][$index],
                    $size
? $size : $upload['size'][$index],
                    $upload
['type'][$index],
                    $upload
['error'][$index],
                    $index
,
                    $content_range
               
);
           
}
       
} else {
           
// param_name is a single object identifier like "file",
           
// $_FILES is a one-dimensional array:
            $files
[] = $this->handle_file_upload(
                isset
($upload['tmp_name']) ? $upload['tmp_name'] : null,
                $file_name
? $file_name : (isset($upload['name']) ?
                        $upload
['name'] : null),
                $size
? $size : (isset($upload['size']) ?
                        $upload
['size'] : $_SERVER['CONTENT_LENGTH']),
                isset
($upload['type']) ?
                        $upload
['type'] : $_SERVER['CONTENT_TYPE'],
                isset
($upload['error']) ? $upload['error'] : null,
               
null,
                $content_range
           
);
       
}
       
return $this->generate_response(
            array
($this->options['param_name'] => $files),
            $print_response
       
);
   
}


   
public function delete($print_response = true) {
        $file_name
= $this->get_file_name_param();
        $file_path
= $this->get_upload_path($file_name);
        $success
= is_file($file_path) && $file_name[0] !== '.' && unlink($file_path);
        $this->delete_img($file_name);
       
if ($success) {
           
foreach($this->options['image_versions'] as $version => $options) {
               
if (!empty($version)) {
                    $file
= $this->get_upload_path($file_name, $version);
                   
if (is_file($file)) {
                        unlink
($file);
                   
}
               
}
           
}
       
}
       
return $this->generate_response(array('success' => $success), $print_response);
   
}


}



function delete_img($delimg)  
{  
$delete_from_db = $this->query("DELETE FROM prueba WHERE info = '$delimg'") or die(mysql_error());  
return $delete_from_db;  
}

D P

unread,
Apr 24, 2013, 2:54:37 AM4/24/13
to jquery-f...@googlegroups.com
try with this:

change:

function add_img($whichimg)  
{  
	$add_to_db = $this->query("INSERT INTO prueba (info) VALUES
	     ('".$whichimg."')") or die(mysql_error());  
	return $add_to_db;  
}

to:

function add_img($whichimg) {
$upload_to_db = $this->query("INSERT INTO fotos_profesionales (fichero_foto,id_usuario,tipo_foto) VALUES
('$whichimg',".$_SESSION['id'].",1)") or die(mysql_error());
return $upload_to_db;
}



   
protected function get_upload_path($file_name = null, $version <span style="background-color: rgb(250, 250, 250); color: rgb(102, 102, 0);" class="styled-by-prett
...

Abdiel Perez Tellez

unread,
Apr 24, 2013, 8:14:16 AM4/24/13
to jquery-f...@googlegroups.com
Thank you. I'm going to give it a tray when I get home this afternoon.
Message has been deleted

Abdiel Perez Tellez

unread,
Apr 24, 2013, 6:29:01 PM4/24/13
to jquery-f...@googlegroups.com
Hi again,

           It didn't work. Do you have it working? Can you show me the whole code? 

Thank you.

D P

unread,
Apr 25, 2013, 3:40:19 AM4/25/13
to jquery-f...@googlegroups.com

here it´s. 

Be carefully
 - with function get_file_objects, I changed the code in order to load photos from database instead of from folder. You must replace my code to original code on this function if you want to read the content of folder.
 - my file are using a file named defines.php with database defined values & other constants on configuration array
UploadHandler.rar

Abdiel Perez Tellez

unread,
Apr 25, 2013, 8:42:23 AM4/25/13
to jquery-f...@googlegroups.com

Thank you so much. Don't worry about pulling pictures from database, I want to do exactly the same. Thank you again. I'll try it when I get home and I'll let you know.

--
You received this message because you are subscribed to the Google Groups "jQuery-File-Upload" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jquery-fileupl...@googlegroups.com.
To post to this group, send email to jquery-f...@googlegroups.com.
Visit this group at http://groups.google.com/group/jquery-fileupload?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Krutarth Sathe

unread,
Jul 20, 2013, 10:19:08 AM7/20/13
to jquery-f...@googlegroups.com
thanks DP, it worked for me. Just wondering if you know, how can I add additional form data, post it on the server and insert it into mysql? any help would be very much appriciated. Thanks in Advance.
Reply all
Reply to author
Forward
0 new messages