mirror of
https://github.com/curl/curl.git
synced 2024-11-21 01:16:58 +08:00
when the file name given to -T is used to build an upload path, the local
directory part is now stripped off and only the actual file name part will be used
This commit is contained in:
parent
1c99c4ad11
commit
c63ca99c1c
18
src/main.c
18
src/main.c
@ -2091,17 +2091,29 @@ operate(struct Configurable *config, int argc, char *argv[])
|
||||
to be able to do so, we have to create a new URL in another
|
||||
buffer.*/
|
||||
|
||||
urlbuffer=(char *)malloc(strlen(url) + strlen(config->infile) + 3);
|
||||
/* We only want the part of the local path that is on the right
|
||||
side of the rightmost slash and backslash. */
|
||||
char *filep = strrchr(config->infile, '/');
|
||||
char *file2 = strrchr(filep?filep:config->infile, '\\');
|
||||
|
||||
if(file2)
|
||||
filep = file2+1;
|
||||
else if(filep)
|
||||
filep++;
|
||||
else
|
||||
filep = config->infile;
|
||||
|
||||
urlbuffer=(char *)malloc(strlen(url) + strlen(filep) + 3);
|
||||
if(!urlbuffer) {
|
||||
helpf("out of memory\n");
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
}
|
||||
if(ptr)
|
||||
/* there is a trailing slash on the URL */
|
||||
sprintf(urlbuffer, "%s%s", url, config->infile);
|
||||
sprintf(urlbuffer, "%s%s", url, filep);
|
||||
else
|
||||
/* thers is no trailing slash on the URL */
|
||||
sprintf(urlbuffer, "%s/%s", url, config->infile);
|
||||
sprintf(urlbuffer, "%s/%s", url, filep);
|
||||
|
||||
url = urlbuffer; /* use our new URL instead! */
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user