Varios métodos de carga entre dominios en PHP
Método 1:
Carpeta:/home/web/attachments
Directorio secundario virtual a /home/web/zxsv/ (admite el mismo servidor LAN) Al diseñar múltiples subdominios para cargar, solo necesita asignar el directorio de archivos adjuntos al directorio secundario del nombre de dominio relevante, de modo que varios subdominios puedan compartir un servidor de archivos adjuntos. Este método es mejor usar el servidor de archivos adjuntos en la LAN, para que el servidor de archivos adjuntos se pueda compartir. El tráfico está separado, por supuesto, el nombre de dominio para acceder a los archivos adjuntos es el directorio secundario virtual de apache, ngixn, IIS, etc. La única desventaja es que no es necesario modificar el programa existente. Son dos servidores. Debe estar en una LAN. Por supuesto, si usas una sola computadora, no tendrás este problema.
Método 2: Actualización de sincronización FTP
PHP. FTP, dáselo a la clase FTP (no lo que escribí (acabo de agregar un directorio de varios niveles), puedes resolverlo tú mismo. Después de cargar, llama a la clase FTP y sincronízalo con el servidor FTP. La ventaja es que el El programa existente solo necesita agregar carga FTP a la sección de carga. La desventaja es que debe admitir FTP
lt;?php
$ftp=new Ftp;
<. p>//print_r($ftp-gt;nlist("" ));$ftp-gt;makedir("3");
//$ftp-gt ;put("comment.php","1.txt") ;
$ftp-gt; bye();
//R procesamiento FTP;
clase ftp {
var $ftpUrl = 'www.zxsv.com';
var $ftpUser = 'zxsv';
var $ftpPass = '111111′;
var $ftpDir = '/zxsv/';
var $ftpR = "; //R recurso ftp;
var $status = ";
//R 1: Éxito; 2: No se puede conectar ftp; 3: Error de usuario;
función ftp() {
if ( $this-gt; ftpR = ftp_connect($this-gt; ftpUrl, 21)) {
if (ftp_login($this-gt; ftpR, $this-gt; ftpUser, $this-gt; ftpPass)) {
if (!empty( $this-gt; ftpDir)) {
ftp_chdir($this-gt; ftpR, $this-gt; ftpDir);
}
ftp_pasv( $this-gt; ftpR, true); //R habilita el modo pasivo
$status = 1; p>} más {
$status = 3 ;
}
} más {
$status = 2;
}
}
//R Cambiar directorio;
función cd($dir) {
return ftp_chdir( $this-gt; ftpR, $dir);
}
//Crear directorio
función mkdir($dir){
regresar ftp_mk
dir($this-gt; ftpR, $dir);
}
función makedir($dir) {
if(!$dir) devolver 0 ;
$dir = str_replace( "\\", "/", $dir );
$mdir = "";
foreach(explode( "/", $dir ) como $val ) {
$mdir .= $val."/";
if( $val == ".." || $ val == "." ) continuar;
if(!@mkdir($mdir)){
echo "Error al crear el directorio [".$mdir."]."
//salir;
}
}
devuelve verdadero;
}
//Eliminar directorio
función rmdir($dir){
return ftp_rmdir($this-gt; ftpR, $dir);
}
//R devuelve la intensidad actual de la carretera;
función pwd() {
return ftp_pwd($this-gt; ftpR);
}
//R Subir archivos;
función put($localFile, $remoteFile = ”) {
if ($remoteFile == ” ) {
$remoteFile = end(explode('/', $localFile));
}
$res = ftp_nb_put($this-gt; ftpR, $remoteFile, $localFile, FTP_BINARY);
print_r($res);
while ($res == FTP_MOREDATA) {
$res = ftp_nb_continue( $this-gt;ftpR);
}
if ($res == FTP_FINISHED) {
devuelve verdadero;
} elseif ($res == FTP_FAILED) {
return false;
}
}
//R Descargar archivo;
p>
función get($remoteFile, $localFile = ”) {
if ($localFile == ”) {
$localFile = end(explode('/' , $remoteFile));
}
if (ftp_get($this-gt; ftpR, $localFile, $remoteFile, FTP_BINARY)) {
$ bandera = verdadero;
} más {
$bandera = falso;
}
return $ bandera;
}
//Tamaño del archivo R;
tamaño de la función ($f
ile) {
return ftp_size($this-gt; ftpR, $file);
}
//Si el archivo R existe;
la función esArchivo($archivo) {
if ($this-gt; tamaño($archivo) gt; = 0) {
return true;
} else {
return false;
}
}
//Tiempo del archivo R
función fileTime($file) {
return ftp_mdtm($this-gt; ftpR, $file);
}
//R eliminar archivo;
función desvincular($archivo) {
return ftp_delete($this-gt; ftpR, $archivo
}
); función nlist($dir = '/servicio/recurso/') {
return ftp_nlist($this-gt; ftpR, $dir);
}
//R cierra la conexión;
función bye() {
return ftp_close($this-gt; ftpR);
}
} gt;