You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
135 lines
4.2 KiB
135 lines
4.2 KiB
<?php
|
|
/*********************************************************************************
|
|
* The contents of this file are subject to the SugarCRM Public License Version 1.1.2
|
|
* ("License"); You may not use this file except in compliance with the
|
|
* License. You may obtain a copy of the License at http://www.sugarcrm.com/SPL
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
|
|
* the specific language governing rights and limitations under the License.
|
|
* The Original Code is: SugarCRM Open Source
|
|
* The Initial Developer of the Original Code is Xavier DUTOIT;
|
|
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.;
|
|
* All Rights Reserved.
|
|
* Contributor(s): SugarCRM Inc.
|
|
********************************************************************************/
|
|
/*********************************************************************************
|
|
* $Header $
|
|
* Description: Tool to manage the uploaded files.
|
|
********************************************************************************/
|
|
|
|
require_once('config.php');
|
|
|
|
/** BEGIN CONTRIBUTION
|
|
* Date: 09/07/04
|
|
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
|
|
* All Rights Reserved.
|
|
* Contributor(s): SugarCRM Inc. */
|
|
define('MAX_FILE_SIZE', $upload_maxsize);
|
|
define('UPLOAD_FOLDER', $upload_dir);
|
|
/** END CONTRIBUTION */
|
|
|
|
|
|
class File {
|
|
function File ($id='',$name='',$module='Notes')
|
|
{
|
|
$this->id = $id;
|
|
$this->name = $name;
|
|
$this->module = $module;
|
|
// just in case we need to attach file to more than the notes
|
|
/** BEGIN CONTRIBUTION
|
|
* Date: 09/07/04
|
|
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
|
|
* All Rights Reserved.
|
|
* Contributor(s): SugarCRM Inc. */
|
|
$this->folder = '/'.UPLOAD_FOLDER;
|
|
/** END CONTRIBUTION */
|
|
}
|
|
|
|
/**
|
|
* Upload the file, you are supposed to call SetID after that (once you know it...
|
|
*/
|
|
function Upload ($fieldname)
|
|
{
|
|
global $root_directory;
|
|
/** BEGIN CONTRIBUTION
|
|
* Date: 09/08/04
|
|
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
|
|
* All Rights Reserved.
|
|
* Contributor(s): SugarCRM Inc. */
|
|
global $upload_badext;
|
|
/** END CONTRIBUTION */
|
|
if (!isset ($_FILES[$fieldname]) || empty ($_FILES[$fieldname]['tmp_name'])) {
|
|
return true; // uploading an empty file can't fail...
|
|
}
|
|
$this->name = $_FILES[$fieldname]['name'];
|
|
|
|
|
|
/** BEGIN CONTRIBUTION
|
|
* Date: 09/07/04
|
|
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
|
|
* All Rights Reserved.
|
|
* Contributor(s): SugarCRM Inc. */
|
|
if (isset($id)) $this->id = $id;
|
|
$ext = (strrpos($this->name, ".")) ? substr($this->name, strrpos($this->name, ".") + 1) : NULL;
|
|
if (in_array($ext, $upload_badext)) {
|
|
$this->name .= '.txt';
|
|
}
|
|
/** END CONTRIBUTION */
|
|
$dest = $root_directory.$this->folder.$this->name;
|
|
if (!move_uploaded_file($_FILES[$fieldname]['tmp_name'], $dest))
|
|
{
|
|
if (!is_dir($this->folder))
|
|
{
|
|
if (mkdir($root_directory.$this->folder, 0755))
|
|
return move_uploaded_file($_FILES[$fieldname]['tmp_name'], $dest);
|
|
else
|
|
{
|
|
// how to handle such error ?
|
|
die ("ERROR: can't upload $this->name to $this->folder");
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
function SetID ($id)
|
|
{
|
|
global $root_directory;
|
|
if (empty ($this->name))
|
|
return;
|
|
if (empty ($id))
|
|
die ("id empty");
|
|
$this->id = $id;
|
|
$path = $root_directory.$this->folder;
|
|
rename ($path.$this->name,$path.$id.$this->name);
|
|
}
|
|
|
|
function URL ()
|
|
{
|
|
/** VTIGER CRM CONTRIBUTION BEGINS
|
|
*/
|
|
$web_root = $_SERVER['SERVER_NAME']. ":" .$_SERVER['SERVER_PORT'];
|
|
$web_root = "http://$web_root";
|
|
/*
|
|
VTIGER CRM CONTRIBUTION ENDS
|
|
*/
|
|
|
|
//global $site_URL;
|
|
return $web_root.$this->folder.$this->id.rawurlencode($this->name);
|
|
}
|
|
|
|
/** BEGIN CONTRIBUTION
|
|
* Date: <today's date>
|
|
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
|
|
* All Rights Reserved.
|
|
* Contributor(s): SugarCRM Inc. */
|
|
function Delete ($old_file)
|
|
{
|
|
global $root_directory, $upload_dir;
|
|
return unlink($root_directory . "/" . $upload_dir . $old_file);
|
|
}
|
|
/* END CONTRIBUTION */
|
|
}
|
|
|
|
?>
|
|
|