Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/09/2013, 23:25
leodany123
 
Fecha de Ingreso: diciembre-2010
Mensajes: 49
Antigüedad: 14 años
Puntos: 0
Mensaje subir archivos al servidor mediante codigo php y jquery

Hola
Necesito la ayuda de alguien urgentemente , explico mi problema
Hace un par de semanas contrate un servidor dedicado para un sistema que desarrolle, pero por la necesidad de la aplicacion, tuve que migrar el sistema de un servidor compartido a un servidor dedicado.
El problema es el siguiente, ay una parte en el sistema que se sube archivos a traves de un formulario, pero el problema es el siguiente es que no sube los archivos al sistema, en el servidor compartido donde se alojaba el sistema subia los archivos sin ningun problema, pero al hacer la migracion al servidor dedicado simplemente no lo sube.
Ya revise los permisos de carpeta puse lo que son los correctos, pero aun asi el problema sigue no se sube los archivos.
Anexo el codigo donde se hace la carga de los archivos
CODIGO DE FORMULARIO
<script>
$(document).ready(function(){
$("#registro").validationEngine();
$("#registro").submit(function(e){
e.preventDefault();
$(".loader").html('<img src="images/loader.gif" />');
if($("#file_list").val()==""){
$('#file-uploader').validationEngine('showPrompt', '* El archivo es obligatorio', 'error');
$(".loader").html('<input class="botonenviar enviar" name="insert" type="submit" value="Enviar" style="margin:0;" />');
}
else{
$('.file-uploaderformError').remove();
if($("#registro").validationEngine('validate')){
$.ajax({
type: "POST",
data: $(this).serialize(),
url: "acciones/registro_cfdi.php",
success: function(msg){
<?php if(isset($_SESSION['empresa'])){?>
timbres();
resumen();
<?php }?>
if(msg.indexOf("El RFC del receptor no corresponde con el RFC")!=-1){
alert(msg);
$.colorbox.close();
}else{
$.colorbox({html:msg});
$(".flexme3_cfdi").flexReload();
$(".loader").html('<input class="botonenviar enviar" name="insert" type="submit" value="Enviar" style="margin:0;" />');
$.colorbox.resize({'width':'600px', 'height':'670px'});
}
}
});
}else{$(".loader").html('<input class="botonenviar enviar" name="insert" type="submit" value="Enviar" style="margin:0;" />');}
}
});
var uploader = new qq.FileUploader({
element: document.getElementById('file-uploader'),
action: 'acciones/php.php',
multiple:false,
allowedExtensions: ['xml', 'zip'],
sizeLimit: 10*1024*1024,
onSubmit: function(id, fileName){
$.colorbox.resize();
},
onComplete: function(id, fileName, responseJSON){
$.colorbox.resize();
$("#file_list").val(fileName);
$("#prefix").val(responseJSON.prefix);
}
});
$( "#fecha_pago" ).datepicker({ dateFormat: "dd/mm/yy" });
});
</script>
<fieldset id="registrousuario">
<form id="registro" action="" name="registro">
<div id="file-uploader" style="margin-top:10px;">
<noscript>
<p>Active JavaScript para subir archivos.</p>

</noscript>
</div>
<?php if(!isset($_SESSION['proveedor'])){ ?>
<label for="archivo">Enviar a:</label>
<select class="texto texto_gde validate[required]" name="division" id="division" >
<option value="">Seleccione una opción</option>
<option value="matriz">Matriz</option>
<?php foreach($divisiones['divisiones'] as $p){
if( (count($permisos)==0 || in_array($p->getId_division(), $permisos) )
){
?>
<option value="<?php echo $p->getId_division();?>"><?php echo $p->getIdentificador();?></option>
<?php }
} ?>
</select>
<?php }else{ ?>
<input type="hidden" name="division" value="" />
<?php }?>
<label for="referencia">C&oacute;digo de referencia / Orden de compra:</label>
<input class="texto texto_gde" name="referencia" id="referencia" type="text" />
<?php if(!isset($_SESSION['proveedor']) && ($_SESSION['rol']==1 || $_SESSION['rol']==2)){?>
<label for="archivo">Fecha de pago:</label>
<input class="texto texto_gde" name="fecha_pago" id="fecha_pago" />
<label for="archivo">Número de cheque o transferencia:</label>
<input class="texto texto_gde" name="numero_cheque" id="numero_cheque" />
<label for="archivo">Observaciones:</label>
<input class="texto texto_gde" name="observaciones" id="observaciones"/>
<?php }?>
<input type="hidden" name="file_list" id="file_list" value="" />
<input type="hidden" name="prefix" id="prefix" value="" />
<span class="loader"><input class="botonenviar enviar" name="insert" type="submit" value="Enviar" style="margin:0;" /></span>
</form>
</fieldset>

codigo para subir los archivos
<?php
$filters = new FiltersForQuery();
if(isset($_SESSION['proveedor'])){
$filters->addFilter('id_proveedor', FiltersForQuery::OPERATOR_EQUAL, $_SESSION['proveedor']);
$proveedores['proveedor']=ProveedorFactory::loadList($filters);
$idEmpresa=$proveedores['proveedor'][$_SESSION['proveedor']]->getId_empresa();
}else $idEmpresa=$_SESSION['empresa'];
$idEmpresa=base64UrlEncode($idEmpresa);
@mkdir('../cfdi/'.$idEmpresa);
@chmod('../cfdi/'.$idEmpresa, 0777);
class qqUploadedFileXhr {
function save($path) {
$input = fopen("php://input", "r");
$temp = tmpfile();
$realSize = stream_copy_to_stream($input, $temp);
fclose($input);
if ($realSize != $this->getSize()){
return false;
}
$target = fopen($path, "w");
fseek($temp, 0, SEEK_SET);
stream_copy_to_stream($temp, $target);
fclose($target);
return true;
}
function getName() {
return $_GET['qqfile'];
}
function getSize() {
if (isset($_SERVER["CONTENT_LENGTH"])){
return (int)$_SERVER["CONTENT_LENGTH"];
} else {
throw new Exception('content length no soportado.');
}
}
}
class qqUploadedFileForm {
function save($path) {
if(!move_uploaded_file($_FILES['qqfile']['tmp_name'], $path)){
return false;
}
return true;
}
function getName() {
return $_FILES['qqfile']['name'];
}
function getSize() {
return $_FILES['qqfile']['size'];
}
}
class qqFileUploader {
private $allowedExtensions = array();
private $sizeLimit = 10485760;
private $file;
function __construct(array $allowedExtensions = array(), $sizeLimit = 10485760){
$allowedExtensions = array_map("strtolower", $allowedExtensions);
$this->allowedExtensions = $allowedExtensions;
$this->sizeLimit = $sizeLimit;
$this->checkServerSettings();
if (isset($_GET['qqfile'])) {
$this->file = new qqUploadedFileXhr();
} elseif (isset($_FILES['qqfile'])) {
$this->file = new qqUploadedFileForm();
} else {
$this->file = false;
}
}

private function checkServerSettings(){
$postSize = $this->toBytes(ini_get('post_max_size'));
$uploadSize = $this->toBytes(ini_get('upload_max_filesize'));

if ($postSize < $this->sizeLimit || $uploadSize < $this->sizeLimit){
$size = max(1, $this->sizeLimit / 1024 / 1024) . 'M';
die("{'error':' error de entorno'}");
}
}
private function toBytes($str){
$val = trim($str);
$last = strtolower($str[strlen($str)-1]);
switch($last) {
case 'g': $val *= 1024;
case 'm': $val *= 1024;
case 'k': $val *= 1024;
}
return $val;
}

function handleUpload($uploadDirectory, $replaceOldFile = FALSE){
if (!is_writable($uploadDirectory)){
return array('error' => "Error de servidor.");
}

if (!$this->file){
return array('error' => 'No se subieron archivos.');
}

$size = $this->file->getSize();

if ($size == 0) {
return array('error' => 'El archivo no tiene contenido');
}

if ($size > $this->sizeLimit) {
return array('error' => 'El archivo es muy grande');
}

$pathinfo = pathinfo($this->file->getName());
$filename = $pathinfo['filename'];
$ext = $pathinfo['extension'];

if($this->allowedExtensions && !in_array(strtolower($ext), $this->allowedExtensions)){
$these = implode(', ', $this->allowedExtensions);
return array('error' => 'tipo de archivo no permitido, solo se admite: '. $these . '.');
}
$prefix=time();
if(!$replaceOldFile){

while (file_exists($uploadDirectory.'/'.$prefix.$filename . '.' . $ext)) {
$filename .= rand(10, 99);
}
}

if ($this->file->save($uploadDirectory .'/'.$prefix.$filename . '.' . $ext)){
return array('success'=>true, 'prefix'=>$prefix);
} else {
return array('error'=> 'No se pudo subir el archivo.' .
'La operación fue cancelada, o error de servidor encontrado');
}

}
}
$allowedExtensions = array("xml", "zip");
$sizeLimit = 2 * 1024 * 1024;
$uploader = new qqFileUploader($allowedExtensions, $sizeLimit);
$result = $uploader->handleUpload('../cfdi/'.$idEmpresa);
echo htmlspecialchars(json_encode($result), ENT_NOQUOTES);

Espero contar con la ayuda de alguien.
Saludos Cordiales