/** * Verifier si le fichier de destination est deja la et OK * @param string $file * @param string $size * @param string $md5 * @param string $dir_dest * @param bool $init * @return bool */ function migration_reception_stat_file_dest_dist($status, $data) { include_spip('base/dump'); $status['status'] = 'statfile'; $dir_dest = $data['dir_dest']; if (!in_array($dir_dest,array("_DIR_IMG","_DIR_SQUELETTES"))){ // dossier pas prevu : refuser $res = 'FAIL'; // notons le fichier comme ignore $status['ignore']['files'][$dir_dest.$data['file']]=$dir_dest.$data['file']; spip_log('tentative stat_file sur '.$data['file'].' dans repertoire interdit '.$dir_dest,'migration'); } else { @define('_DIR_SQUELETTES',_DIR_RACINE."squelettes/"); $dir_dest = constant($dir_dest); $status['progress']['files'][$dir_dest.$data['file']] = 0; // verifier l'extension // strict en dehors du dossier skel, // un peu plus de types autorises dans le dossier skel $strict = ($data['dir_dest']!='_DIR_SQUELETTES'); if (migration_type_fichier_autorise($data['file'],$strict)){ $res = base_stat_file_dest_dist($data['file'],$data['size'],$data['md5'],$dir_dest,$data['init']); if (intval($res)) $status['progress']['files'][$dir_dest.$data['file']] = $res; } else { // renvoyons la taille comme si le fichier etait deja la // evite une tentative d'envoi, mais n'empeche pas de securiser // l'ecriture aussi car rien ne nous dit que l'envoyeur soit fair play $res = $data['size']; $status['progress']['files'][$dir_dest.$data['file']] = "X"; // notons le fichier comme ignore $status['ignore']['files'][$dir_dest.$data['file']]=$dir_dest.$data['file']; } } update_migration_depuis($status); return $res; }
/** * Verifier si le fichier de destination est deja la et OK * @param string $file * @param string $size * @param string $md5 * @param string $dir_dest * @param bool $init * @return bool */ function migration_reception_fichier_ecrire_dist($status, $data) { include_spip('base/dump'); $status['status'] = 'cp'; $dir_dest = $data['dir_dest']; if (!in_array($dir_dest,array("_DIR_IMG","_DIR_SQUELETTES"))){ // dossier pas prevu : refuser $res = 'FAIL'; // notons le fichier comme ignore $status['ignore']['files'][$dir_dest.$data['file']]=$dir_dest.$data['file']; spip_log('tentative de copie fichier '.$data['file'].' vers repertoire interdit '.$dir_dest,'migration'); } else { @define('_DIR_SQUELETTES',_DIR_RACINE."squelettes/"); $dir_dest = constant($dir_dest); // strict en dehors du dossier skel, // un peu plus de types autorises dans le dossier skel $strict = ($data['dir_dest']!='_DIR_SQUELETTES'); if (migration_type_fichier_autorise($data['file'],$strict)){ $res = base_fichier_ecrire_dist($data['file'],$data['d'],$dir_dest); if ($res) $status['progress']['files'][$dir_dest.$data['file']] = $res; } else { // on ne devrait pas arriver la car le fichier a ete refuse au moment du stat // on peut presumer que c'est une tentative de passage en force. // Est-ce qu'on ignore juste, ou est-ce qu'on abandonne tout ? $res = 'FAIL'; // notons le fichier comme ignore $status['ignore']['files'][$dir_dest.$data['file']]=$dir_dest.$data['file']; spip_log('tentative ecriture fichier '.$data['file'].' : type interdit dans '.$dir_dest,'migration'); } } update_migration_depuis($status); return $res; }