编码社区怎么样?我正在学习PHP,我正试图用一个像"Instagram"这样的图像源或类似的东西制作一个小图像上传脚本。
顺便说一句,今天我吃了。codeccourse的一个很棒的教程,我像他一样编写了我的代码。除了第21 - 24行,我真的理解了他代码的每一部分。如果你们中有谁能一步一步地解释这些行,我将非常感激。
我已经注释掉了这些行。
if(isset($_FILES['file'])) {
$file = $_FILES['file'];
//Datei Eigenschaften
$file_name = $file['name'];
$file_tmp = $file['tmp_name'];
$file_size = $file['size'];
$file_error = $file['error'];
//File extensions
$file_ext = explode('.', $file_name);
$file_ext = strtolower(end($file_ext));
$allowed = array('txt', 'jpg');
if(in_array($file_ext, $allowed)) {
if($file_error === 0) {
if($file_size <= 2097152) {
//$file_name_new = uniqid('', true) . '.' . $file_ext;
//$file_destination = '../uploads/' . $file_name_new;
//if(move_uploaded_file($file_tmp, $file_destination)) {
echo $file_destination;
}
}
}
}
}
谢谢
//$file_name_new = uniqid('', true) . '.' . $file_ext; //$file_destination = '../uploads/' . $file_name_new; //if(move_uploaded_file($file_tmp, $file_destination)) { echo $file_destination;
这是你不明白的部分吗?
第一行将为您上传的文件定义一个唯一的id,并将文件扩展名放在上面。比如someuniqueID.png
。这是为了确保文件的名称不会被服务器上的另一个文件占用。因此,uniqid('', true)
将生成一个随机ID,而$file_ext
是上传文件的扩展名(jpg, png, gif或类似的东西)。
下一行是您定义存储上传文件的位置,在代码中您选择将文件存储在../uploads/
中,然后使用在第一行(唯一名称)中构造的新文件名($file_name_new
)。扩展).
最后一个if statement
做两件事,使用您的唯一名称将实际文件移动到您的位置,并检查是否已经完成。如果它运行成功,它将echo
输出完整的目的地和文件的新文件名。
$file_name_new = uniqid('', true) . '.' . $file_ext;
$file_name_new将为带有文件扩展名的图像创建一个唯一的名称。
$file_destination = '../uploads/' . $file_name_new;
$file_destination =是上传图片的新路径。
if(move_uploaded_file($file_tmp, $file_destination)) {
echo $file_destination;
}
上面的代码将把它出售的图像上传到新的位置。