Opened 13 years ago
Closed 13 years ago
#21244 closed defect (bug) (duplicate)
media_sideload_image() should replace spaces and %20's in URLs to dashes
Reported by: |
|
Owned by: | |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | |
Component: | Media | Keywords: | |
Focuses: | Cc: |
Description
I wrote a script to import content by scraping the HTML from a site. Yuck! Some of the image file names have spaces in them. DOUBLE YUCK!
I needed to use media_sideload_image()
to import them into WordPress' media library. But the only way to successfully download the image is to first replace the space characters with %20. Then WordPress saves the new filename with %20's in them and WordPress multisite's .htaccess rules despise filenames with %20 in them.
Here is how I fixed it:
$file_array['name'] = basename($matches[0]);
becomes
$file_array['name'] = preg_replace('/\s|%20/', '-', basename($matches[0]));
Need an image with a space in the filename? Use this http://www.pewforum.org/uploadedImages/Topics/Issues/Social_Welfare/John%20DiIulio2.jpg
#16330, #21116