我正在使用tinymce编辑器将图像上传到服务器中,并且在设置路径时遇到问题。在postAcceptor.php
中/public
,它将把图像上传到其中的文件夹/articles/assets/images/
中/public
。
在中web.php
,我Route::get('/articles/{id}', function(){...})
用来显示已在服务器中上传的图像。但是,图像指示来源错误,因此无法显示图像。它的来源应该是:
localhost:8000/articles/assets/images/fragment%20life%20cycle.png
但是,实际上,它指示:-
localhost:8000/articles **/articles**/assets/images/fragment%20life%20cycle.png
postAcceptor.php
<?php
/*******************************************************
* Only these origins will be allowed to upload images *
******************************************************/
$accepted_origins = array("http://localhost:8000", "http://192.168.1.1", "http://example.com");
/*********************************************
* Change this line to set the upload folder *
*********************************************/
$today = date("y-m-d");
$imageFolder = "articles/assets/images/";
reset ($_FILES);
$temp = current($_FILES);
if (is_uploaded_file($temp['tmp_name'])){
if (isset($_SERVER['HTTP_ORIGIN'])) {
// same-origin requests won't set an origin. If the origin is set, it must be valid.
if (in_array($_SERVER['HTTP_ORIGIN'], $accepted_origins)) {
header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
} else {
header("HTTP/1.1 403 Origin Denied");
return;
}
}
/*
If your script needs to receive cookies, set images_upload_credentials : true in
the configuration and enable the following two headers.
*/
// header('Access-Control-Allow-Credentials: true');
// header('P3P: CP="There is no P3P policy."');
// Sanitize input
if (preg_match("/([^\w\s\d\-_~,;:\[\]\(\).])|([\.]{2,})/", $temp['name'])) {
header("HTTP/1.1 400 Invalid file name.");
return;
}
// Verify extension
if (!in_array(strtolower(pathinfo($temp['name'], PATHINFO_EXTENSION)), array("gif", "jpg", "png"))) {
header("HTTP/1.1 400 Invalid extension.");
return;
}
// Accept upload if there was no origin, or if it is an accepted origin
$filetowrite = $imageFolder . $temp['name'];
move_uploaded_file($temp['tmp_name'], $filetowrite);
// Respond to the successful upload with JSON.
// Use a location key to specify the path to the saved image resource.
// { location : '/your/uploaded/image/file'}
echo json_encode(array('location' => $filetowrite));
} else {
// Notify editor that the upload failed
header("HTTP/1.1 500 Server Error");
}
?>
有什么办法可以解决这个问题,还是绝对或相对路径的任何线索?
Laravel内置了路径帮助器,您可以使用它们来确保始终始终获得通往事物的正确路径。
尝试改变
$imageFolder = "articles/assets/images/";
至
$imageFolder = public_path("articles/assets/images/");
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句