PHP - cuando paso un archivo por ftp al servidor $_FILES["archivo"]["tmp_name"];

   
Vista:
Imágen de perfil de Sandro

cuando paso un archivo por ftp al servidor $_FILES["archivo"]["tmp_name"];

Publicado por Sandro (21 intervenciones) el 12/09/2014 21:46:06
Tengo un problema cuando deseo generar una pagina para subir archivos al servidor, siempre sube los archivos que se encuentran en el mismo directorio, donde esta el programa fuente, pero al tomar las variables del servidor $_FILES['archivo']['tmp_name'], donde diferentes paginas del tu amigo google, dicen que ahí debe de estar el directorio donde esta el elemento a subir, pero como lo muestro esta en blanco.

me podrán echar un lente, gracias


Esta pagina web, sube un archivo al servidor
1
2
3
4
<form name="enviador" method="post" action="subir.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="1500">
Archivo: <input type="file" name="archivo">
<input type="submit">
este codigo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var_dump($_FILES);
echo "Nombre: ".$archivo_name=$_FILES['archivo']['name']."=====".getcwd();
echo "\n<br>";
echo "Tamaño: ".$archivo_size=$_FILES['archivo']['size']."=====".$_SERVER['HTTP_HOST'];
echo "\n<br>";
echo "Archivo Temporal: ".$_FILES['archivo']['tmp_name'];
echo "\n<br>";
$extension = explode(".",$archivo_name);
$num = count($extension)-1;
if($extension[$num] == "png"){
	if($archivo_size < 30000){
		if(!copy($archivo_name, "archivos/".$archivo_name)){
			echo "error al copiar el archivo";
		}
		else{
			echo "archivo subido con exito";
		}
	}
	else{
		echo "el archivo supera los 30kb";
	}
}
else{
	echo "el formato de archivo no es valido, solo .zip";
}
1
var_dump($_FILES);
1
["archivo"]=> array(5) { ["name"]=> string(8) "d890.png" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(2) ["size"]=> int(0

solamente sube los archivo que se encuentran en el mismo directorio donde esta el programa, donde esta la imagen d890.png siempre aparece en blanco, en php.ini upload=on

ya busque por la web, y no encuentro la respuesta. me podrán ayudar. gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

cuando paso un archivo por ftp al servidor $_FILES["archivo"]["tmp_name"];

Publicado por xve (5519 intervenciones) el 13/09/2014 09:40:58
Hola Sandro, es muy extraño, ya que el código parece que esta correcto.

Puede ser que estes subiendo archivos que superen el tamaño permitido por php?
Has revisado el log del Apache, haber si te da alguna información al respecto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro

cuando paso un archivo por ftp al servidor $_FILES["archivo"]["tmp_name"];

Publicado por Sandro (21 intervenciones) el 13/09/2014 16:23:29
lo probé desde chromium y fiefox y no dice nada

tail -f /var/log/apache2/error.log
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro

cuando paso un archivo por ftp al servidor $_FILES["archivo"]["tmp_name"];

Publicado por Sandro (21 intervenciones) el 13/09/2014 20:35:20
subí el programa al servidor y hace lo mismo, no puedo por medio de php subir nada al servidor

tengo linux debian, y probé desde una maquina virtual en ninfows y hace lo mismo

el log de apache sigue sin decir nada

probé desde otra computadora en misma red, y no funciona

los codigo estos
ftp.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>
			JSP Page
		</title>
		<script type="text/javascript" language="JavaScript">
			function check() {
				document.getElementById("archivo").value = document.filea.nomarchivo.value;
				var ext = document.filea.nomarchivo.value;
				ext = ext.substring(ext.length-3,ext.length);
				ext = ext.toLowerCase();
				if(ext != 'jpg' && ext != 'png') {
					alert('You selected a .'+ext+' file; please select a .jpg or png file instead!');
					return false; }
				else
					return true; }
 
		</script>
		<script language="JavaScript">
			if (navigator.appVersion.indexOf('MSIE') > -1) {
				archivo1.style.visibility = 'hidden';
				archivo1.style.position = 'absolute';
				document.write('<input type="button" value="Examinar..." onclick="archivo1.click();">');
			}
		</script>
	</HEAD>
	<body>
		<form name="enviador" method="post" action="../includes/ftp_transferir.php" enctype="multipart/form-data">
			<input type="hidden" name="MAX_FILE_SIZE" value="1500">
				Archivo:
			<input type="file" name="archivo">
			<input type="submit">
		</form>
 
		<h1>
			Hello World!
		</h1>
		<form method="post" name="filea" action="../includes/ftp_transferir.php" enctype="multipart/form-data" onsubmit="return check();">
			Archivo:
			<input type="file" name="nomarchivo" size="70" accept="text/plain;image/jpeg">
			<br /><br />
			<input type="text" id="archivo" name="archivo">
			<input type="submit" name="enviar" value="Enviar">
		</form>
 	</body>
</html>




../includes/ftp_transferir.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$server = "server.com"; //address of ftp server (leave out ftp://)
$ftp_user_name = "user"; // Username
$ftp_user_pass = "password"; // Password
$source = $_FILES['archivo']['name'];echo "\n<br>$source";
$dest = $_FILES['archivo']['tmp_name'];echo "\n<br>$dest";
$mode="FTP_BINARY";
$connection = ftp_connect($server);
 
$login = ftp_login($connection, $ftp_user_name, $ftp_user_pass);
 
if (!$connection || !$login) { die('Connection attempt failed!'); }
 
$upload = ftp_put($connection, $dest, $source, FTP_BINARY);
 
if (!$upload) { echo 'FTP upload failed!'; }
 
ftp_close($connection);
echo "done";
?>

ahí están las imágenes que muestra que no funciona, puede ser el modem tengo mas de tres días batallando con esto, claro no las 24 horas, por que me aburre y lo dejo, pero tengo hacer una pagina para subir fotos y no funciona. tengo que actualizar unas base de datos, esto me tiene detenido, alguien me puede dar un lente, para buscar por donde.

cambio el campo de $_files['archivo']['tmp_name']; a $_FILES['archivo']['name_tmp'];

aun así no funciona

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

cuando paso un archivo por ftp al servidor $_FILES["archivo"]["tmp_name"];

Publicado por xve (5519 intervenciones) el 14/09/2014 19:36:12
Hola Sandro, viendo tu código y las imagenes que nos has adjuntado, y veo que tu archivo sube bien al servidor, lo que no funciona, es que lo envias a otro servidor por FTP... ahi tienes el problema.
Si en vez de enviar el archivo al servidor lo guardas en el mismo servidor PHP, te funcionara perfectamente.


Sobre el funcionamiento del ftp, creo que tienes un error en el destino, ya que la variable:
$_FILES['archivo']['tmp_name'];
Creo que también contiene la ruta de donde se encuentra en tu máquina local. De ahí tendrás que coger solo el nombre del archivo sin la ruta.

No se si me he explicado bien...

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro

cuando paso un archivo por ftp al servidor $_FILES["archivo"]["tmp_name"];

Publicado por Sandro (21 intervenciones) el 14/09/2014 23:27:00
mira no entendi muy claro tu respuesta pero te dire algo:

ftp_transferir.php
$server = "webserver";
$ftp_user_name = "login";
$ftp_user_pass = "pass";
$source = "ftp_transferir.php";
$dest = "lista.php";
$mode="FTP_BINARY";
$connection = ftp_connect($server);

$login = ftp_login($connection, $ftp_user_name, $ftp_user_pass);

if (!$connection || !$login) { die('Connection attempt failed!'); }

$upload = ftp_put($connection, $dest, $source, FTP_BINARY);

if (!$upload) { echo 'FTP upload failed!'; }

ftp_close($connection);
echo "done";
?>

ese mismo includes se pasa al servidor

como se muestra
sandro@WebServer:~$ ls -l
total 24
-rw------- 1 sandro sandro 669 sep 14 16:19 lista.php
drwxrwxr-x 3 sandro sandro 4096 may 21 07:52 Log
-rw------- 1 sandro sandro 0 sep 9 14:53 mbox
-rw------- 1 sandro sandro 3551 mar 25 08:54 my.cnf
drwxr-xr-x 17 sandro sandro 4096 mar 20 22:29 Php
drwxrwxr-x 6 sandro sandro 4096 jun 1 10:26 public_html
drwxrwxr-x 2 sandro sandro 4096 jun 11 07:56 Sh

cuando lo hago por pagina funciona siempre y cuando este el mismo directorio, lógicamente cuando algún cliente suba datos no están el mismo directorio están en su computadora.

no entiendo por que, me dices que lo estoy subiendo a otro ftp, solamente es la pagina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro

cuando paso un archivo por ftp al servidor $_FILES["archivo"]["tmp_name"];

Publicado por Sandro (21 intervenciones) el 15/09/2014 17:33:46
los datos de las variables:
$_FILES['nombreDeCampo']['name'];
$_FILES['nombreDeCampo']['tmp_name'];

solo contiene el nombre del elemento a pasar a ftp, requiero la direccion completa, como puedo sacarla.

/home/user/nombreDeElemento.dld

solamente puedo subir a ftp archivos que estan en mismo directorio del programa

/home/user/public_html/Tarjetas contine:

tarjetas1.jpge
tarjetas2.jpg
ftp.php

en el servidor local de ftp, solo puedo subir tarjetas1.* y tarjetas2.*

pero quiero subir de otro directorio

y el programa arriba en el servidor pasa lo mismo

no se puede ser apache, puede ser el modem, (por que probe de otra computadora y pasa lo mismo)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar