File Store in a remote server using php - php

I have done a project in php for a call center .
My goal is to write the call recording files in a remote server. How it possible ?.
My code is ,
if(isset($row['recAudioFile'])){
$path="http://xxxxx.com/testrecordings/";
$RecordedFile="test.mp3";
file_put_contents($path.$RecordedFile,base64_decode($row['recAudioFile']));
}
Note : I can't run any php code in the remote server Or establish a FTP Connection.

Related

php file downloading instead of showing up on browser?

I'm running this from Filezilla remote server
anyone have any solution
<?php
echo "what a lab";
?>
For a web browser to load the output of a PHP file you need to make an HTTP request to an HTTP server which supports PHP.
FileZilla is an FTP client. It connects to FTP servers. FireZilla, if it comes into it at all, will be used only to copy the PHP file to the computer which is running both an FTP and HTTP server.
You need to enter the matching HTTP URL (e.g. http://example.com/your.php) into the address bar of your browser.

How to upload file in php from browser with no user input

I am working on a php web app .
I need to upload a file to the web server, with customer info - customers.csv.
but this process needs to be automated ,
The file will be generated in a Point of Sale app , and the app can open a browser window with the url ...
first i taught i would do something like this www.a.com/upload/&file=customers.csv
but read on here that is not possible,
then i taught i would set a value for the file upload field and submit form automatically after x seconds. Discovered thats not possible .
Anybody with a solution , will be appreciated .
EDIT
I have tried this and it works ,file is uploaded to remote server
is it working only because the php script is running on the same pc where csv is sitting ???
$file = 'c:\downloads\customers.csv';
$remote_file = 'customers.csv';
// set up basic connection
$conn_id = ftp_connect('host.com');
// login with username and password
$login_result = ftp_login($conn_id,'user','password');
// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "successfully uploaded $file\n";
} else {
echo "There was a problem while uploading $file\n";
}
// close the connection
ftp_close($conn_id);
This is of course not possible, imagine how this could be abused to upload on linux as example the /etc/passwd. The only way it might be possible is to use a Java Applet, but this is for sure not the best way.
You could try to let your PoS Application make a web request with the customers.csv file and let a WebAPI handle the upload, this may be possible, but I have no expierence with Point of Sale Applications.
Best might be, if the solution above cannot be considered, to just prompt the user to provide the file above and check over name + content if it is the correct one.
This is a bit tricky, but if your CSV is not too long, you could encode it in base64, send to the webserver as a GET parameter and then, in the server side, decode and store it as a CSV file.
If the file is too big to do that, you have to use other method, like the java applet pointed by #D.Schalla or even install and configure a FTP server, and make the Point of Sale app uploads the file there.
Other alternative, specially good if you cannot modify the sale app, is to install a web server in the client side and write a small php script to handle the upload process. In this way, the sale app could call a local url (something like: http:// localhost/upload.php) and it's this script the one in charge to upload the file which can be achieve with a classical HTTP POST, a FTP connection or any other way you can think about.
MY Solution , which will work with out setting up web server on client side.
This is for windows but can be adapted to linux
On client side
Local Application opens cmd and runs this command ftp -n -s:C:\test.scr
WHICH opens test.scr - a file with ftp commands e.g.
open host.com
user1
passwOrd
put C:\downloads\customers.csv public_html/customers.csv
more info here :
http://support.microsoft.com/kb/96269
more commands :
http://www.nsftools.com/tips/MSFTP.htm#put

PHP FTP transfer

I have files that are automatically uploaded onto a server from mobile phones, and I need to automatically transfer these files from the server to another server using PHP.
Could someone please explain how I would do this?
Thanks for any help
PHP has FTP functionality built in with FTP wrappers:
Allows read access to existing files and creation of new files via FTP. If the server does not support passive mode ftp, the connection will fail.
This means you can use FTP like any other file - an extremely simple example:
<?php
$data = file_get_contents('some/other/file.txt');
$fname = "ftp://name:yourpassword#127.55.41.10:21/some/path/filename.txt";
file_put_contents($fname,$data);
?>

PHP ftp_put, local file?

If i have a local file, for example, c:/test.txt, what path do i need to type in the ftp_put function to make it work (string $local_file)? When i try with "c:/test.txt" i get an error.
Thanks
Its on a remote server. Am i using wrong php function? I want to upload a local file to a remote ftp ...
Yes, you're using the wrong function.. Remember - PHP executes on the SERVER, not in your browser and not on your local machine. Any FTP connection you establish in the PHP script will be relative to the server.
e.g. If you've got something like this:
(your machine) ----> (your website) ----> (other machine you ftp to)
The FTP connection will be between "your website" and "other machine you ftp to". Any "local" path you specify for a file will be local to "your website", not "your machine".
You'd first have to upload the file via regular HTTP file sending mechanisms via a form on your site, which gets the file from "your machine" to "your server". The PHP script which handles the upload can then use the FTP functions to transfer the file from "your website" to "other machine you ftp to".
I think that if you have to use ftp to pull a file off your machine (as opposed to using a html form) your best bet would be to set your local machine up as an ftp server. You would probably need an static ip address for this to be consistent. You could then have your script connect to your local machine and use ftp_get to grab test.txt.

Flash/Flex & PHP Socket Application Sandbox error

I am running a socket server using PHP. The socket server runs fine because I can connect to it using PHP.
Now, I have a flash application that is trying to connect to it:
this.socket.addEventListener(Event.CONNECT, onSocketConnect);
this.socket.addEventListener(Event.CLOSE, onSocketClose);
this.socket.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
this.socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecError);
try {
this.socket.connect("myip", 9999);
} catch (ioError:IOError) {
this.debugLbl.text += "ioError1 "+ioError.message;
} catch (secError:SecurityError) {
this.debugLbl.text += "secError1 "+secError.message;
}
When I run the application locally, it works! However, when I upload it to my server I get a sandbox security error (#2048). The flash app is actually hosted on the same server as the socket server, and there is cross domain policy file in place.
Is it possibly you need to use a php proxy? I had to do that, doc'd it here. Although you did mention that the app's on the same server and theres a crossdomain.xml in place, so i'm probably off the mark there (btw, Flash 10 needs a different crossdomain.xml than prev versions as far as I know).
Are you actually loading the cross domain policy file? As far as I know, Flash Player only tries to load automatically the following file: http://www.example.com/crossdomain.xml. If your file is in another place, you should load it:
Security.loadPolicyFile("http://www.example.com/subfolder/crossdomain.xml");
Also, even if the app is on the same server, Flash Player believes "http://www.example.com" to be different from "http://example.com", so you should make sure you cover this possibility in the cross domain policy file:
<allow-access-from domain="*.example.com"/>
You need to pass the crossdomain.xml file by the socket, because when you work with socket dont work any policy file in the root of the app web.
Here the sample : http://www.blog.lessrain.com/as3-java-socket-connections-to-ports-below-1024/

Categories