使用文件URL来关联$ _FILES名称和临时名称

时间:2014-11-17 03:12:18

标签: php forms

您正在使用表单上传pdf文件以延迟其示例页面 :

<form action="process.php" method="post" enctype="multipart/form-data">
<input type="file" name="inputfile" /><input type="submit" name="submit" value="Extract Pages" />
</form>

该过程正在使用其余功能所依赖的pdf文件详细信息 process.php包含:

$FileName = $_FILES['inputfile']['name'];
$TempFileName = $_FILES['inputfile']['tmp_name'];
$Folderpath='/home/domain/public_html/pdftest/temp';

这里使用文件uplaod进程获取文件名和临时文件名,但我想使用文件URL获取这些信息,如www.domainname.com/docs/1.pdf并且没有表单上传过程

如何改变它?

2 个答案:

答案 0 :(得分:0)

您必须知道,目前上传的文件位于&#39; tmp&#39;文件夹,&#39; $ _ FILES [&#39;输入文件&#39;] [&#39; tmp_name&#39;]&#39;是文件名。

要通过网址访问文件,您必须将文件移动到所需的文件夹,比如您的目标文件夹是upload,那么您应该在代码中添加这样的内容

     $target_path = "uploads/";
     $target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 
     if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
        echo "The file ".  basename( $_FILES['uploadedfile']['name'])."has been uploaded";        
     } else{
        echo "There was an error uploading the file, please try again!";
     }  

答案 1 :(得分:0)

如果文件在您的服务器上并且您有URL,则可以像这样获取文件的路径:

$url = 'www.domainname.com/docs/1.pdf'; // Or get `$url` some other way
$url_parts = parse_url($url);
$filepath = $_SERVER['DOCUMENT_ROOT'].$url_parts['path'];

然后$filepath是PDF文件的完整路径。

注意:当您不上传文件时,没有文件名或临时文件名。

您可以使用以下内容伪造文件名和临时文件名:

$TempFileName = $filepath;
$FileName = basename($filepath);