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 */
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								?>
							 | 
						|
								
							 |