我最近出现问题时,我试图将保存图片更改为具有不同名称的位置。例如。保存一个名为hello.jpg到一个位置叫/sets/1/09092014-1.jpgPhp多张照片上传和重命名
下面的图片是我的代码:
if(isset($_FILES['files'])){
$errors= array();
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name){
$file_name = $key.$_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
$file_type=$_FILES['files']['type'][$key];
$today = date("dmY");
$Title = $today."-".$x.".jpg";
$x ++;
$url = "/Sets/".$desired_dir."/".$Title;
$query = "INSERT INTO photo(name, url, album) VALUES('$Title', '$url', '$set')";
$result = mysql_query($query) OR DIE(mysql_error());
if($file_size > 10485760){
$errors[]='File size must be less than 2 MB';
}
if(empty($errors)==true){
if(is_dir("Sets/"."$desired_dir")==false){
mkdir("Sets/"."$desired_dir", 0700);
}
if(is_dir("Sets/"."$desired_dir/".$Title)==false){
rename ($file_tmp , $Title);
move_uploaded_file($file_tmp, "/Sets/$desired_dir/$file_tmp");
}else{
}
不包括在上面的DB的东西。
我花了一段时间对此,发现我可能需要使用rename()方法重命名文件,然后再保存它,我试过了,但是它再次没有奏效。
运行时,它将信息添加到数据库,创建要放入的文件夹(如果不存在),但不添加文件。
感谢, WAQ
你有一个'Sets'目录在你的服务器的文件系统的根?请记住,PHP在文件系统级别运行,并且完全不了解您的站点结构。如果'/ Sets'实际上是一个Web路径,那么你可能需要更多的东西像'$ _SERVER [“DOCUMENT_ROOT”]。 '/ Sets/etc ...''而不是你的move_uploaded_file()调用。 – 2014-08-27 21:25:51
感谢您的回复,The/Sets文件是我工作的php文件。我认为它正在工作,因为如果/ Sets/1 /不存在,它将在/ Sets /中创建“1”文件夹。 move_uploaded_file()是不同的? – Waq 2014-08-27 21:30:10
所以你有'example.com/Sets/blahblahblah'?然后,这是一个基于Web的路径,它存在于服务器文件系统的某个地方,可能是'/ home/sites/example.com/html/Sets'或其他。您需要整个路径,因为PHP不会知道您正在尝试继续使用您网站的文档根目录。 PHP不关心你的网站的文档根目录是什么。 – 2014-08-27 21:32:01