上传图片并提取文件名而不是文件路径

时间:2019-01-09 08:06:28

标签: laravel-5.6

我正在使用以下代码在“存储/应用/公共/网站”中上传缩略图

@BeforeClass 
public static void setUp() throws Exception { 
    System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");

    //chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"
    System.out.println("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe --remote-debugging-port=9222 --user-data-dir=\"C:/selenum/AutomationProfile\"");
    System.out.println("num"+num);
    if(num == 0)
        newBrowser();
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("debuggerAddress", "127.0.0.1:9222");
    WebDriver driver = new ChromeDriver(options);

    System.out.println(driver.getTitle());
    driver.manage().window().maximize();
    driver.get("https://google.com");

    driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");
    ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
    driver.switchTo().window(tabs.get(0));
    driver.get("https://www.naver.com/");
    Runtime.getRuntime().exec("taskkill /F /IM chromedriver.exe /T");

}

它可以正常工作并将图像上传到“网站”目录,但是问题是它返回了实际路径,例如网站/r63mAKN1kil3BIwvwwRevOv93MgWQFme39BwH8ZV.jpeg

我只想保存图像名称,例如数据库表中的r63mAKN1kil3BIwvwwRevOv93MgWQFme39BwH8ZV.jpeg。

默认情况下,Laravel为图像名称生成唯一ID。有没有办法只返回文件名而不是路径?

4 个答案:

答案 0 :(得分:1)

这是哈希名称,因此,首先,我认为您需要分隔步骤。

$file = $request->file('thumbnail');

$path = $file->store('public/websites');

当您需要添加文件名时,可以使用$file->hashName();

答案 1 :(得分:0)

您可以使用basename功能

http://php.net/manual/en/function.basename.php

$filename = basename($path);

答案 2 :(得分:0)

这就是您需要的

$extension = $request->image->getClientOriginalExtension();
$image_name = str_replace(' ', '', trim($request->model) . time() . "." . $extension);

并将图像移动到所需的文件夹,请使用:

  $image_path = $request->image->move(public_path('images'), $image_name);

答案 3 :(得分:0)

$info = pathinfo( $url );

$contents = ( new \GuzzleHttp\Client() )->get( $url, [ 'verify' => true ] )->getBody()->getContents();
$file = str_finish(sys_get_temp_dir(), '/') . $info[ 'basename' ];

\File::put( $file, $contents );

$ext = ( new UploadedFile( $file, $info[ 'basename' ] ) )->guessExtension();