我一直在研究一个预制的图像上传模板,因为我对 php 不太擅长,所以我似乎无法解决这个问题。
我需要能够提取到我的图像的直接链接($upload_dir
变量+文件扩展名),以便我可以在我的index.php
页面中使用它。我试图将我的post_file.php
文件包含在我的文件中,index.php
但我收到了Wrong HTTP-method
消息。
我的网站在html5
其中,如果这与我的上传文件混淆,它正在使用拖放来启动上传。
post_file.php:
$demo_mode = false;
$upload_dir = 'uploads/'.date(d).rand(0000,9999);
$allowed_ext = array('jpg','jpeg','png','gif');
if (strtolower($_SERVER['REQUEST_METHOD']) != 'post') {
exit_status('Error! Wrong HTTP method!');
}
if (array_key_exists('pic',$_FILES) && $_FILES['pic']['error'] == 0 ) {
$pic = $_FILES['pic'];
if (!in_array(get_extension($pic['name']),$allowed_ext)) {
exit_status('Only '.implode(',',$allowed_ext).' files are allowed!');
}
// Uploads are being ignored, but logged.
if ($demo_mode) {
$line = implode(' ', array( date('r'), $_SERVER['REMOTE_ADDR'], $pic['size'], $pic['name']));
file_put_contents('log.txt', $line.PHP_EOL, FILE_APPEND);
exit_status('Uploads are ignored in demo mode.');
}
// Move image,rename it and log it all
if (move_uploaded_file($pic['tmp_name'], $upload_dir.'.'.get_extension($pic['name']))) {
$line = implode(' ', array( date(r), 'http://website.com/'.$upload_dir.'.'.get_extension($pic['name'])));
file_put_contents('log.txt', $line.PHP_EOL, FILE_APPEND);
exit_status('Upload was successful');
}
}
exit_status('Something went wrong with your upload!');
功能
function exit_status($str) {
echo json_encode(array('status'=>$str));
exit;
}
function get_extension($file_name) {
$ext = explode('.', $file_name);
$ext = array_pop($ext);
return strtolower($ext);
}
当我收到错误消息时使用include('post_file.php')
is 时,如何在不包含post_file.php
在我的index.php
文件中的情况下获取新的图像名称 + 路径和扩展名,然后在变量中回显它?
提前致谢!