Title: Error: Invalid file path!
Last modified: March 4, 2021

---

# Error: Invalid file path!

 *  [cybsys](https://wordpress.org/support/users/cybsys/)
 * (@cybsys)
 * [5 years, 3 months ago](https://wordpress.org/support/topic/error-invalid-file-path/)
 * Hi. I am getting the error “_Invalid file path!_” from the file **class-pr-dhl-
   api-ecs-asia.php** in **dhl-for-woocommerce\includes\pr-dhl-api**.
 * I have looked at your code and I can’t see anything obviously wrong except that
   I am getting a return value of 2 from the function `validate_file`. This means
   that it is returning a Windows path which WordPress does not like.
 * Do you have any suggestions what I can do? It isn’t a permissions error because
   I can write to this directory if I edit your PHP code to manually use the directory
   location.
 * EG:
    `$label_path = '/mysite.com/www/wp-content/uploads/DHL/dhl-label-' . $shipment_id.'.
   PDF';` `$file_info->path = $label_path;`
 * However this is not a working solution. It was just to test that I could indeed
   write to the directory.
    -  This topic was modified 5 years, 3 months ago by [cybsys](https://wordpress.org/support/users/cybsys/).
    -  This topic was modified 5 years, 3 months ago by [cybsys](https://wordpress.org/support/users/cybsys/).
    -  This topic was modified 5 years, 3 months ago by [cybsys](https://wordpress.org/support/users/cybsys/).

Viewing 12 replies - 1 through 12 (of 12 total)

 *  Thread Starter [cybsys](https://wordpress.org/support/users/cybsys/)
 * (@cybsys)
 * [5 years, 3 months ago](https://wordpress.org/support/topic/error-invalid-file-path/#post-14132084)
 * Small update. All changes above were reverted and this function needs to be edited(
   along with `get_dhl_close_out_label_file_info`). “C:” must be removed from the
   path otherwise it fails to create a label. However, after editing these two functions,
   I cannot download the label when I clock on ‘Download Label’. It downloads a 
   file called “post.htm” which seems to just contain the entire webpage source.
 *     ```
       public function get_dhl_item_label_file_info( $barcode, $format = 'pdf' )
       {
       	$file_name = $this->get_dhl_item_label_file_name($barcode, $format);
   
       	$folder_dir = PR_DHL()->get_dhl_label_folder_dir() . $file_name;
       	$folder_url = PR_DHL()->get_dhl_label_folder_url() . $file_name;
   
       	$folder_dir = substr($folder_dir, 2); // remove "C:" from the string
   
       	/*if(1) { throw new Exception( __($folder_dir)); }*/ // debugging
   
       	return (object) array(
       		'path' => $folder_dir,
       		'url' => $folder_url,
       	);
       }
       ```
   
 * Any ideas [@shadim](https://wordpress.org/support/users/shadim/)?
    -  This reply was modified 5 years, 3 months ago by [cybsys](https://wordpress.org/support/users/cybsys/).
    -  This reply was modified 5 years, 3 months ago by [cybsys](https://wordpress.org/support/users/cybsys/).
 *  Plugin Author [Progressus](https://wordpress.org/support/users/shadim/)
 * (@shadim)
 * [5 years, 3 months ago](https://wordpress.org/support/topic/error-invalid-file-path/#post-14132345)
 * Are you using a Windows server?
 *  Thread Starter [cybsys](https://wordpress.org/support/users/cybsys/)
 * (@cybsys)
 * [5 years, 3 months ago](https://wordpress.org/support/topic/error-invalid-file-path/#post-14132389)
 * Yes. Windows Server 2012. Did you design this plugin with only a Unix system 
   in mind? If so, we’ll need to fix it. It’s better to do a string find and replace
   than to remove the first 3 chars in the string like I am and run a function which
   verifies if it’s a Windows system or not, but that can be done later. For now,
   I’m just trying to figure out why the file downloads are not working. Any advice?
   🙂
 *  Thread Starter [cybsys](https://wordpress.org/support/users/cybsys/)
 * (@cybsys)
 * [5 years, 3 months ago](https://wordpress.org/support/topic/error-invalid-file-path/#post-14133179)
 * Okay, I got it working. File to edit is **abstract-pr-dhl-wc-order.php**. However,
   you need to refresh the page once you have created the label (which is very annoying).
   This is because of this code.
 *     ```
       global $woocommerce, $post;
       $order_id = $post->ID;
       ```
   
 * To fix that, you need to edit the function `generate_download_url` in **class-
   pr-dhl-wc-order-ecs-asia.php** and **class-pr-dhl-api-ecs-asia.php** to have 
   a second argument which is `$order_id` so the order ID is parsed on execution
   since the page doesn’t pull that data after the page has loaded.
 * Anyway, here is the updated function
 *     ```
       public function generate_download_url( $endpoint_path )
       	{
       		// used for Windows Server only
       		global $woocommerce, $post;
       		$order_id = $post->ID;
   
       		// If we get a different URL addresses from the General settings then we're going to
       		// construct the expected endpoint url for the download label feature manually
       		if ( site_url() != home_url() ) {
   
       			// You can use home_url() here as well, it really doesn't matter
       			// as we're only after for the "scheme" and "host" info.
       			$result = parse_url( site_url() );
   
       			if ( !empty( $result['scheme'] ) && !empty( $result['host'] ) )
       			{
       				return $result['scheme'] . '://' . $result['host'] . $endpoint_path;
       			}
       		}
   
       		// Defaults to the "Site Address URL" from the general settings along
       		// with the the custom endpoint path (with parameters)
       		//return home_url($endpoint_path); // Unix
   
       		// Windows Server will generate "https://mysite.com/dhl_download_label/1234" so we will inject the path manually
       		$label_tracking_info = $this->get_dhl_label_tracking($order_id);
       		$label = substr($label_tracking_info['label_path'], 17);
       		return home_url($label);
       }
       ```
   
 * Make the changes to your GitHub repo (but of course, don’t use the hardcoded `
   substr` code. Make it dynamic). This bug is horrid. You shouldn’t code projects
   for Unix only. A **LOT** of people use Windows Server.
 * [https://github.com/shadimanna/dhl-logistic-services-for-woocommerce](https://github.com/shadimanna/dhl-logistic-services-for-woocommerce)
    -  This reply was modified 5 years, 3 months ago by [cybsys](https://wordpress.org/support/users/cybsys/).
    -  This reply was modified 5 years, 3 months ago by [cybsys](https://wordpress.org/support/users/cybsys/).
    -  This reply was modified 5 years, 3 months ago by [cybsys](https://wordpress.org/support/users/cybsys/).
    -  This reply was modified 5 years, 3 months ago by [cybsys](https://wordpress.org/support/users/cybsys/).
    -  This reply was modified 5 years, 3 months ago by [cybsys](https://wordpress.org/support/users/cybsys/).
    -  This reply was modified 5 years, 3 months ago by [cybsys](https://wordpress.org/support/users/cybsys/).
 *  Plugin Author [Progressus](https://wordpress.org/support/users/shadim/)
 * (@shadim)
 * [5 years, 3 months ago](https://wordpress.org/support/topic/error-invalid-file-path/#post-14133405)
 * You should actually place the `substr` in the `download_label` function at the
   end of that file. Can you confirm that works as well?
 *  Thread Starter [cybsys](https://wordpress.org/support/users/cybsys/)
 * (@cybsys)
 * [5 years, 3 months ago](https://wordpress.org/support/topic/error-invalid-file-path/#post-14133459)
 * Dunno. I don’t want to waste any more time on this plugin. I’ve already spent
   several hours working on it. It’s working for me so I’ll leave it be. Best you
   setup a Windows Server on a localhost, get a quick database setup with WordPress
   and test it yourself to see the pain I had to go through to get it working.
 *  [galileon](https://wordpress.org/support/users/galileon/)
 * (@galileon)
 * [5 years, 3 months ago](https://wordpress.org/support/topic/error-invalid-file-path/#post-14143495)
 * Same Problem here; above suggested fixes did not work;
    Also running on Windows;
   Log can be found here: [https://pastebin.com/iuRDBiG2](https://pastebin.com/iuRDBiG2)
 *  Thread Starter [cybsys](https://wordpress.org/support/users/cybsys/)
 * (@cybsys)
 * [5 years, 3 months ago](https://wordpress.org/support/topic/error-invalid-file-path/#post-14144696)
 * Your environment may not be using **class-pr-dhl-api-ecs-asia.php**. Some may
   use the REST or SOAP PHP files instead. You will have to just run tests like 
   I did in my first post to figure out which PHP file triggers the label creation.
   From there, you can edit the functions and fix them as needed.
 * [@shadim](https://wordpress.org/support/users/shadim/) should _really_ be working
   on fixing this plugin properly for public use with Windows Server though or at
   least mention that it’s for **Unix servers only**.
 *  Plugin Author [Progressus](https://wordpress.org/support/users/shadim/)
 * (@shadim)
 * [5 years, 3 months ago](https://wordpress.org/support/topic/error-invalid-file-path/#post-14148999)
 * We are working to make the plugin compatible with Windows, thank you for your
   patience.
 *  [sebobst](https://wordpress.org/support/users/sebobst/)
 * (@sebobst)
 * [5 years, 1 month ago](https://wordpress.org/support/topic/error-invalid-file-path/#post-14363000)
 * how far are you with the adjustments?
 *  Plugin Author [Progressus](https://wordpress.org/support/users/shadim/)
 * (@shadim)
 * [5 years, 1 month ago](https://wordpress.org/support/topic/error-invalid-file-path/#post-14364073)
 * We hope to have this with a couple of weeks.
 *  [sebobst](https://wordpress.org/support/users/sebobst/)
 * (@sebobst)
 * [5 years, 1 month ago](https://wordpress.org/support/topic/error-invalid-file-path/#post-14364492)
 * thank you for your response.
 * actually i used the `substr` function in the file **class-pr-dhl-api-soap-label.
   php** so that at least the label is created.
    but i did not get the download 
   link of the label connected with the button. the code from cybsys does not have
   an effect in my configuration. but i found out, that i have to use the file **
   abstract-pr-dhl-wc-order.php**. only the adjustments do not work.
 * but it is fine for me to wait and use the direkt access via ftp to get the label
   data when you bring out a version for windows servers in some weeks.

Viewing 12 replies - 1 through 12 (of 12 total)

The topic ‘Error: Invalid file path!’ is closed to new replies.

 * ![](https://ps.w.org/dhl-for-woocommerce/assets/icon.svg?rev=1777040)
 * [DHL Shipping Germany for WooCommerce](https://wordpress.org/plugins/dhl-for-woocommerce/)
 * [Support Threads](https://wordpress.org/support/plugin/dhl-for-woocommerce/)
 * [Active Topics](https://wordpress.org/support/plugin/dhl-for-woocommerce/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/dhl-for-woocommerce/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/dhl-for-woocommerce/reviews/)

 * 12 replies
 * 4 participants
 * Last reply from: [sebobst](https://wordpress.org/support/users/sebobst/)
 * Last activity: [5 years, 1 month ago](https://wordpress.org/support/topic/error-invalid-file-path/#post-14364492)
 * Status: not resolved