The file endpoints are resource based endpoints (such as ftp and sftp endpoints) as opposed to event based endpoints (i.e. jms and vm) or tcp based endpoints (i.e. tcp, http, udp, etc)
For this reason the approach you are implementing won't fit your use case. If you need to load a file on demand (i.e. when you hit an http endpoint) you should refactor your flow and use the mule-module-file-utils. This module need to be added as a maven dependency or installed in Studio. You can do that by cloning the git repo and then you can install the generated update site zip file following these instructions
Once you did that your flow will look like the following:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:fileutils="http://www.mulesoft.org/schema/mule/fileutils" xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" xmlns:scripting="http://www.mulesoft.org/schema/mule/scripting" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:file="http://www.mulesoft.org/schema/mule/file"
xmlns:mulexml="http://www.mulesoft.org/schema/mule/xml" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/fileutils http://www.mulesoft.org/schema/mule/fileutils/3.3/mule-fileutils.xsd
http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd
http://www.mulesoft.org/schema/mule/scripting http://www.mulesoft.org/schema/mule/scripting/current/mule-scripting.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd
http://www.mulesoft.org/schema/mule/xml http://www.mulesoft.org/schema/mule/xml/current/mule-xml.xsd ">
<fileutils:config name="Fileutils" doc:name="Fileutils"/>
<flow name="FileCopier" doc:name="FileCopier">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="copy-file" doc:name="HTTP"/>
<scripting:transformer doc:name="Script">
<scripting:script engine="Groovy">
<scripting:text><![CDATA[def dir = new File("/" + message.getInboundProperty('http.relative.path'))
log.info(dir.getPath())
return Arrays.asList(dir.listFiles())]]></scripting:text>
</scripting:script>
</scripting:transformer>
<logger level="INFO" doc:name="Logger"/>
<set-variable variableName="fileNumber" value="#[payload.size()]" doc:name="Variable"/>
<foreach doc:name="Foreach">
<fileutils:copy-file config-ref="Fileutils" destinationName="#[message.payload.getName()]" destinationPath="/tmp/out/" fileName="#[message.payload.getName()]" filePath="#[message.payload.getParentFile().getPath()]" fileAge="0" doc:name="Fileutils"/>
</foreach>
<set-payload value="#[flowVars['fileNumber'] + ' file copied']" doc:name="Set Payload"/>
<http:response-builder status="200" contentType="text/plain" doc:name="HTTP Response Builder"/>
</flow>
</mule>
If you don't want to use the fileutils module you can replace it with a scripting component that implements the file copy logic
Now this flow can be invoked using the following curl command
curl http://${hostname}:8081/copy-file/${path_to_directory_to_copy}
The documentation about curl is available here